Java语言使用数组实现队列

class Queue{
private int maxSize;
long[] queArray;
int front;//队头
int rear;//队尾
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;
}
queArray[++rear]=j;
nItems++;
}

public void  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 boolean isFull(){
return (nItems==maxSize);
}

public int size(){
return nItems;
}

    public void display() {  
        //System.out.print("队列为:");  
        if (nItems == 0) {  
            System.out.println("空。");  
            return;  
        }  
        else if (rear >= front) {  
            for (int i = front; i <= rear; i++) { //常规,队头在下,队尾在上
            if(queArray[i]!=0) {
            System.out.print(queArray[i] + " ");  
            }  
            }
        } else {  
            for (int i = front; i < maxSize; i++) {  //先输出队头到最高下标,再输出最小下标到队尾
            if(queArray[i]!=0) {
            System.out.print(queArray[i] + " ");  
           
            }  
            for (int i = 0; i <= rear; i++) {  
            if(queArray[i]!=0) {
            System.out.print(queArray[i] + " ");  
            }
            }  
        }  
        System.out.println();  
    }  
 
}

猜你喜欢

转载自blog.csdn.net/cwh0908/article/details/79333423