隊列與棧很類似,它是一種特殊的線性表。這種線性表,對於它的刪除與插入操做只能在表頭(隊列頭 front)和表尾(隊尾 rear)進行;隊列的修改是按先進先出原則進行的。簡稱FIFO表。demo以下: spa
class Queue {
private int maxSize;
private long[] queArray;
private int rear; // 隊尾標量
private int front;
public Queue(int size) {
maxSize = size;
queArray = new long[maxSize];
front = 0;
rear = 0;
}
public void add(long j) {
if (rear > maxSize - 1)
return;
queArray[rear++] = j;
}
// 隊頭元素出隊
public long remove() {
long value = queArray[front++];
return value;
}
// 獲取隊頭元素,不刪除
public long peek() {
return queArray[front];
}
// 判斷隊列是否爲空
public boolean isEmpty() {
return rear == front;
}
// 判斷隊列是否已滿
public boolean isFull() {
return rear == maxSize - 1;
}
}
public class QueueApp {
public static void main(String[] args) {
Queue queArray = new Queue(5);
queArray.add(10);
queArray.add(20);
queArray.add(30);
queArray.add(40);
while(!queArray.isEmpty()) {
// FIFO 出隊
System.out.print(queArray.remove()+"<--");
}
}
} 隊列