数据结构之循环队列队空队满判断

目录

一、指针类别

二、循环队列结构图

 三、循环队列各种情况的判断

1. 空队列

2.队列初始化

 3.队满条件

 四、例子详解

 五、出队、入队指针变化情况


一、指针类别

在队列的题目中,队头指针(front)和队尾指针(rear)有两种指示方法。

(1)队头指针 front
    ①指向队头元素
    ②指向队头元素元素的前一个位置
(2)队尾指针 rear
    ①指向队尾元素
    ②指向队尾元素的后一个位置

以下我的说明中队头指针均指的是队头元素,队尾指针均指的是队尾元素的后一个位置。

二、循环队列结构图

 三、循环队列各种情况的判断

1. 空队列

 

 front==rear,注意此时这俩指针不一定都指向初始位置0,也可能指向1或者2或者3等等。

2.队列初始化

front=rear=0.

 3.队满条件

(rear+1)%maxSize==front.

 

如上图所示,如果还想往队列中放入元素的话,就会产生疑问(加入一个新元素之后,front就会和rear相等,此时无法判断队列是“空”还是“满”)。所以为了解决这一问题,我们可以少用一个元素,约定队头在队尾指针的下一个位置时作为队满的标志

 四、例子详解

 

 

 首先将1,2 3,4,5这五个元素依次入队,此时front指向0的位置,rear指向5的位置。依次将1,2,3这三个元素出队,此时front指向3的位置,rear还是指向5的位置。再依次将6,7,8这第三个元素入队,front指向3的位置,rear指向0的位置。

 五、出队、入队指针变化情况

 结论一:当队列执行元素入队操作时,队尾指针(rear)向后移(rear++),队头指针(front)不变
结论二:当队列执行元素出队操作时,队头指针(front)向后移(front++),队尾指针(rear)不变

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值