数据结构循环顺序队列的入队出队代码实现7.22(分文件 c语言)

目录

1、queue.h

2、queue.c

3、main.c

执行结果:


数据结构之循环顺序队列

1、队列的定义

队列(queue)是只允许在⼀端进⾏插⼊操作,另⼀端进⾏删除操作的线性表

队列是⼀种先进先出的线性表,允许插⼊的⼀端称为队尾(rear),允许删除的⼀端称为队头(front)。向队列中插⼊元素称为⼊队,从队列中删除元素称为出队。当队列中没有元素时称为空队列。队列的操作是按先进先出的原则进⾏的,即新添加的元素总是加到队尾,每次离开的元素总是队头的元素。和栈⼀样,队列也是⼀种运算受限制的线性表,所以⼜叫先进先出表(First In First Out),简称FIFO表。

2、顺序队列

假设⼀个队列有n个元素,则顺序存储的队列需要建⽴⼀个⼤于n的数组,并把队列的所有元素存储在数组的前n个单元,数组下标为0的⼀端即为队头。

所谓的⼊队,就是在队尾追加⼀个元素,不需要移动任何元素,所以时间复杂度为O(1).

队列的出队是在队头,即下标为0的位置,也就意味着,队列中的所有位置都得向前移动,以保证下标为0的位置,即对头不为空。此时时间复杂度为O(n)。

为了避免当只有⼀个元素时,队头和队尾重合使得处理变得⿇烦,所以引⼊两个指针,front指针 指向队头元素,rear指针 指向队尾元素的下⼀个元素。这样当 front 等于 rear 时,不是队列中有⼀个元素,⽽是表⽰空队列。

假设数组的长度为5,空队列及初始状态如图所⽰,fr

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值