简介
- 有序
- 先入先出
- 数组或链表实现
数组模拟队列
1、队列容量:maxSize
2、初始值front = rear = -1
3、判断队列为空:front = rear
4、判断对列已满:rear = maxSize -1
5、向队列里添加数据:
rear++
队列名[rear] = 新数据
6、从队列里取数据:front++
取出的数据 = 队列名[front]
7、这样使用队列只能使用一次,头和尾指针一直在变化
示例代码
//使用数组模拟队列-编写一个ArrayQueue类
class ArrayQueue {
private int maxSize;//表示数组的最大容量
private int front;// 队列头 指向首元素前一个位置
private int rear;// 队列尾
private int[] arr;//该数组用于存放数据 模拟队列
public ArrayQueue(int arrMaxSize) {
this.maxSize = arrMaxSize;
arr = new int[maxSize];
front = -1;//指向队列头部,分析出front是指向队列头的前一个位置
rear = -1;//指向队列尾部,指向队列尾的数据(即就是队列的最后一个数据)
}
//判断队列是否满
public boolean isFull() {
return rear == maxSize-1;
}
//判断队列是否为空
public boolean isEmpty(){
return rear == front;
}
//添加数据到队列
public void addQueue(int n) {
if(isFull())