1. 程式人生 > >java版資料結構與演算法—佇列

java版資料結構與演算法—佇列

/**
 * 佇列:先進先出
 */
class MyQueue {
    int a[];
    int maxSize; //大小
    int front;  //開頭
    int rear;   //結尾
    int nItems; //元素個數
    //初始化
    public MyQueue(int size){
        maxSize = size;
        a = new int[maxSize];
        front = 0;
        rear = -1;
        nItems = 0;
    }
    //插入
    public void
insert(int value){ if(rear == maxSize - 1){ rear = -1; } a[++rear] = value; nItems ++; } //刪除 public int remove(){ int tmp = a[front++]; if(front == maxSize){ front = 0; } nItems --; return tmp;
} //檢視 public int peekFront(){ return a[front]; } //判滿 public boolean isFull(){ return nItems == maxSize; } //判空 public boolean isEmpty(){ return nItems == 0; } //檢視元素個數 public int size(){ return nItems; } public static
void main(String[] args){ MyQueue myQueue = new MyQueue(10); myQueue.insert(10); myQueue.insert(20); myQueue.insert(30); myQueue.insert(40); myQueue.insert(50); System.out.println("刪除一次:" + myQueue.remove()); System.out.println("刪除兩次:" + myQueue.remove()); System.out.println("刪除三次:" + myQueue.remove()); myQueue.insert(60); myQueue.insert(70); myQueue.insert(80); myQueue.insert(90); myQueue.insert(100); myQueue.insert(600); while (!myQueue.isEmpty()){ int value = myQueue.remove(); System.out.print(value + " "); } } }

在這裡插入圖片描述