Summary
- 什么是环形队列
- 实现环形队列图示过程
- golang版本代码实现过程
- 参考全部代码
什么是环形队列
在一个指定大小的数组里循环写入数据,借用二个指针分别实现入队标记与出队标记.也体现了指针的大好用处,请深入体会.大有裨益.
如图所示,一个环形队列.含有二个指针: 队列头指针,队列尾指针.

实现环形队列图示过程
初始化一个数组大小为6的环形队列, 头指针frOnt=0, 尾指针rear=0, 刚好frOnt=rear =0的状态,表示环形队列为空.

2.向环形队列里插入1个元素,则rear指针移动一格,frOnt=0,rear=1

3.继续添加a2,a3,a4,a5元素,rear指针指到末尾处,frOnt=0, reat=5

4.如果再继续添加a6元素,则rear=6,大于数组大小,发生数组溢出.

5.如上图所示添加a6时,rear指针发生溢出.我们使用一个小技巧,当rear=6时与数组大小6进行取模, (rear+1) % maxLen,让rear指针回到开始处rear=0,问题来了,我们无法判断数组是否满?因为初始化时frOnt=rear=0, 现在数组满也是frOnt=rear=0

6.解决以上问题有三种办法,我们采用第3种方法实现.

使用第3种方法: 即当(rear+1) % maxLen == front时,判断环形数组满,则无法添加元素

golang版代码实现过程
a. 定义环形数据结构
b.初始化环形队列
c. 入队操作
d.出队操作
e:求当前的环形队列长度
参考全部代码
github
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。