目录

一、指针类别

二、循环队列结构图

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

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)不变

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐