How to implement Priority queue with Java

• 04-12-2008, 08:49 PM
Java Tip
How to implement Priority queue with Java
Code:

```public class PriorityQ {   // array in sorted order, from max at 0 to min at size-1   private int maxSize;   private long[] queArray;   private int nItems;   public PriorityQ(int s) {     maxSize = s;     queArray = new long[maxSize];     nItems = 0;   }   public void insert(long item) {     int i;     if (nItems == 0)       queArray[nItems++] = item; // insert at 0     else     {       for (i = nItems - 1; i >= 0; i--) // start at end,       {         if (item > queArray[i]) // if new item larger,           queArray[i + 1] = queArray[i]; // shift upward         else           // if smaller,           break; // done shifting       }       queArray[i + 1] = item; // insert it       nItems++;     } // end else (nItems > 0)   }   public long remove(){     return queArray[--nItems];   }   public long peekMin(){     return queArray[nItems - 1];   }   public boolean isEmpty(){     return (nItems == 0);   }   public boolean isFull(){     return (nItems == maxSize);   }   public static void main(String[] args) {     PriorityQ thePQ = new PriorityQ(5);     thePQ.insert(30);     thePQ.insert(50);     thePQ.insert(10);     thePQ.insert(40);     thePQ.insert(20);     while (!thePQ.isEmpty()) {       long item = thePQ.remove();       System.out.print(item + " "); // 10, 20, 30, 40, 50     }     System.out.println("");   } }```