Java算法与数据结构入门——数组队列
普通数组队列
是一种数据结构,遵守着“先进先出”的原则,是只允许在一端进行插入操作,而在另一端进行删除操作的线性表,有点类似我们生活排队的操作,而这次我们在这里讨论的是以数组为原型组成的“队列”
class ArrayQueue{
private int maxSize; //定义队列最大容纳数
private int front; //定义队列头指针 一般为-1
private int rear; //定义队列尾指针
private int[] arr; // 在初始化的时候,根据最大容纳数产生一个数组
}
首先我们先定义一个数组队列,并在下面定义几个对数组的操作
第一 、创建队列操作
在入队列的操作中,需要有以下思考
(1)存入数据后,尾指针后移,并当front == rear时,即表示队列中的数据为空(或者说已经消费完了)
(2)当尾指针rear小于队列的最大下标“maxSize-1”,则将数据存放于队列中,否则则无法存放数据
那么接下来我们根据数组队列,写一个构造器
public ArrayQueue(int maxSize) {
this.maxSize = maxSize;
arr = new int[maxSize];
front = -1;
rear = -1;
}
并将头指针和尾指针都定义为-1,意为空队列。
并根据上面的思考,分别写出两个判断队列为空或队列为满的方法
public boolean isFull(){
return rear == maxSize-1;
}
public boolean isEmpty(){
return front == rear ;
}