和栈一样,队列也是线性的集合。对于队列来说,插入限制在一端,也就是队尾,删除限制在另一端,也就是对头。队列支持先进先出的协议。
本文使用java中的数据和列表来实现队列类,从而更加详细和直观的理解队列的使用和性质。
1、使用数组实现队列
public class QueueWithArray {
private int [] queueArray;
private int front = 0;
private int rear = 0;
public QueueWithArray() {
this(5);
}
public QueueWithArray(int queueSize) {
queueArray = new int [queueSize];
}
public void push(int element) {
if (rear >= front && rear < queueArray.length - 1) {
queueArray [rear ++] = element;
}
else if(rear == queueArray.length - 1 && front == 0) {
int [] tempArray = new int [queueArray.length * 2];
System.arraycopy(queueArray, 0, tempArray, 0, queueArray.length);
queueArray [rear ++] = element;
}
else if (front > 0 && rear == queueArray.length - 1) {
queueArray [rear] = e