先来聊聊队列的特点:
①队列是一个有序列表,可以用数组或者链表实现
②入队列和出队列是从队列的两端操作的,遵循先进先出原则。类似的我们在食堂排队买饭。
下面分别是基于数组实现的普通队列和循环队列
普通队列:
front指向队列第一个元素的前一个,默认值是-1;rear指向队列的最后一个元素默认值是-1,maxSize为栈最多存放多少个元素。Java实现代码如下:
public class Test1 {
private int front;
private int rear;
private int maxSize;
private int[] arr;
public Test1(int maxSize) {
front = -1;//队列头的前一个元素
rear = -1;//队列的最后一个元素
this.maxSize = maxSize;
arr = new int[maxSize];
}
public boolean isFull(){
return rear == maxSize-1;
}
public boolean isEmpty(){
return front == rear;
}
public void add(int data){
if (isFull()){
System.out.println("队列已满,无法添加!");