队列
1. 队列介绍
- 队列是一个有序列表,可以使用数组或链表来实现
- 遵循先入先出的原则。即:先存入队列的数据,要先取出,后存入的后取出
- 示意图(使用数组模拟队列)
2. 数组模拟队列
如上图所示,maxSize是该队列的最大容量
,front记录队列前端,当有元素出队时变化
,rear记录队列后端,当有元素入队时变化
1 | # 一些需要明确的条件 |
代码实现:
1 | package codeX.Queue; |
该‘’队列存在的问题‘’:
- 目前数组使用一次后就无法再使用了,没有达到复用的效果
- 将该数组修改为环形队列以后就可以使用了,需要用到取模运算 %
3. 数组模拟环形队列
对前面的数组模拟队列的优化,充分利用数组,因此将数组看作是一个环形的(通过取模的方式来实现即可)
取模运算的作用:让一个数据的大小始终在循环范围内。
需要做的调整入下:
1 | # 思路如下 |
1 | # 一些需要明确的条件 |
代码如下:
1 | package codeX.CircleArrayQueue; |