Queue.java
package cn.sdut.ch4;
//demonstrates queue
public class Queue {
private int maxSize;
private long[] queArray;
private int front;//队首
private int rear;//队尾
private int nItems;
public Queue(int maxSize) { //constructor
this.maxSize = maxSize;
queArray = new long[maxSize];
front = 0;
rear = -1;
nItems = 0;
}
public void insert(long value) {
if(rear == maxSize-1) {
rear = -1;
}
queArray[++rear] = value;
nItems++;
}
public long remove() {
long temp = queArray[front++];
if(front == maxSize) {
front = 0;
}
nItems--;
return temp;
}
public long peekFront() {
return queArray[front];
}
public boolean isEmpty() {
return (nItems == 0);
}
public int size() {
return nItems;
}
}
测试代码
package cn.sdut.ch4;
public class QueueApp {
public static void main(String[] args) {
Queue queue = new Queue(5);
queue.insert(10);
queue.insert(20);
queue.insert(30);
queue.insert(40);
System.out.println(queue.remove());
System.out.println(queue.remove());
System.out.println(queue.remove());
System.out.println("====================");
queue.insert(50);
queue.insert(60);
queue.insert(70);
queue.insert(80);
while(!queue.isEmpty()) {
System.out.println(queue.remove());
}
}
}