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

java版資料結構與演算法—優先順序佇列

/**
 * 優先順序佇列,排好序的佇列插入和刪除
 */
class PriorityQueue {
    int a[];
    int maxSize;
    int nItems;
    public PriorityQueue(int size){
        maxSize = size;
        a = new int[maxSize];
        nItems = 0;
    }
    //有序插入
    public void inset(int value){
        int j;  //要插入的位置
        if(nItems ==
0){ a[nItems++] = value; }else { for(j=nItems - 1;j>=0;j--){ if(value > a[j]){ a[j+1] = a[j]; }else { break; } } a[j+1] = value; nItems ++;
} } //刪除 public int remove(){ return a[--nItems]; } //檢視最小的 public int peekMin(){ return a[nItems - 1]; } //判滿 public boolean isFull(){ return nItems == maxSize; } //判空 public boolean isEmpty(){ return nItems == 0; }
public static void main(String[] args){ PriorityQueue pq = new PriorityQueue(10); pq.inset(56); pq.inset(5); pq.inset(6); pq.inset(99); pq.inset(1); pq.inset(35); pq.inset(25); while (!pq.isEmpty()){ int value = pq.remove(); System.out.print(value + " "); } } }

在這裡插入圖片描述