/**
* 队列
* */
public class Queue {
/** 一般队列队头为0位置,队尾为-1位置,
* 在队尾插入rear上移一位,
* 当rear等于队列总长减1时,则rear被置为-1位置,
* 在队头删除front上移一位
* 当front等于队列总长时,则front被置为0位置*/
private int maxSize;//最大长度
private long[] queArray;//初始化一个队列
private int front;//队头
private int rear;//队尾
private int nItems;//队列中当前数据项的个数
public Queue(int s){
maxSize=s;
queArray=new long[maxSize];
front=0;
rear=-1;
nItems=0;
}
public void insert(long j){
if(rear==maxSize-1){
rear=-1;
}
System.out.println("rear1:"+rear);
queArray[++rear]=j;
System.out.println("rear2:"+rear);
nItems++;
}
public long remove(){
long temp=queArray[front++];
System.out.println("front1:"+front);
if(front==maxSize){
front=0;
}
System.out.println("front2:"+front);
nItems--;
return temp;
}
public long peekFront(){
return queArray[front];
}
public boolean isEmpty(){
return (nItems==0);
}
public boolean isFull(){
return (nItems==maxSize);
}
public int size(){
return nItems;
}
}
/**
* 队列的实现
* */
public class QueueApp {
public static void main(String[] args) {
Queue theQueue=new Queue(5);
theQueue.insert(10);
theQueue.insert(20);
theQueue.insert(30);
theQueue.insert(40);
theQueue.remove();
theQueue.remove();
theQueue.remove();
theQueue.insert(50);
theQueue.insert(60);
theQueue.insert(70);
theQueue.insert(80);
while(!theQueue.isEmpty()){
long n=theQueue.remove();
System.out.println(n);
System.out.println(" ");
}
System.out.println(" ");
}
}