java数据结构之----数组队列及循环队列
数据结构与算法学习的第二篇
什么时候需要用到队列
队列在实际开发过程中运用的非常广泛,由于我也是学习基础,还没有开发过什么项目,所以用到时候就知道了
什么是队列
- 队列是一个有序列表,可以用数组或者链表来实现
- 队列遵守先入先出的原则
联系实际场景
可以把一个队列的存入,读取数据的过程看成在银行里面排队办理业务,进银行,取号,叫号,办理业务,出银行这几个过程。
具体图示
实现思路
由上面的图示,可以知道数组队列需要以下几个属性来完成模拟队列的实现:
基本属性
- maxSize:表示队列的最大存储容量,也就是数组的大小
- front:队头属性
- rear:队尾属性
- arrQueue:模拟队列的数组
实现过程
- 队列的输入和输出是由队头和队尾属性控制的,因此由front和rear分别记录下队列的前后端下标
- 当front 的下标志值等于rear的下标值时,队列为空
- 当rear 的值等于 maxSize - 1时队列为满队列
- 加入数据时队尾的rear增加1
- 输出出队时队列的front减少1
实现上述方法需要创建的方法
- 判断队列是否是满队列的方法 isFull()
- 判断队列是否为空队列的方法 isEmpty()
- 增加数据的方法addQueue(),注意在增加数据时需要判断队列是否是满队列,是满队列的话数据增加不了
- 获取队列数据的方法getQueue(),注意获取