使用场景
模拟银行叫号系统
队列介绍
队列是一个有序列表,可以用数组或是链表来实现
遵循先入先出的原则,即:先存入队列的数据,要先取出,后存入的要后取出
队列本身是有序列表,使用数组的结构来存储队列的数据
因为队列的输入,输出是分别从前后端来处理,因此需要两个变量front及rear分别记录队列签
后端的下标,front会随着数据输出而改变,而rear则是随着数据输入而改变,(入队列rear增加
,出队列front增加)
示意图
数组模拟队列思路分析
将尾指针后移.rear+1, front == rear(空)
若尾指针rear小于队列的最大下标maxSize - 1,则将数据存入rear所指的数组元素中,否则无法
存入数据. rear == maxSize - 1(队列满)
代码实现
//使用数组模拟队列-编写一个ArrayQueue类
class ArrayQueue {
//表示数组的最大容量
private int maxSize;
//队列头
private int front;
//队列尾
private int rear;
//数组用于存放数据,模拟队列
private int[] arr;
//创建队列的构造器
public ArrayQueue(int arrMaxSize) {
maxSize = arrMaxSize;//最大容量
arr = new int[maxSize];//格式化数组
front = -1;//指向队列头部,分析出front是指向队列头的前一个位置
rear = -1;//指向队列尾,指向队列尾的数据(即是队列最后一个数据)
}
//判断队列是否满
public boolean isFull() {
return rear ==