Priority queue : Queue « Collections Data Structure « Java






Priority queue

Priority queue
publicclass PriorityQ { // array in sorted order, from max at 0 to min at size-1 privateint maxSize; privatelong[] queArray; privateint nItems; public PriorityQ(int s) { maxSize = s; queArray = newlong[maxSize]; nItems = 0; } publicvoid 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)  } publiclong remove(){ return queArray[--nItems]; } publiclong peekMin(){ return queArray[nItems - 1]; } publicboolean isEmpty(){ return (nItems == 0); } publicboolean isFull(){ return (nItems == maxSize); } publicstaticvoid 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(""); } } 








Related examples in the same category

1.Queue data structureQueue data structure
2.Convert a Queue to a List
3.Create a queue using LinkedList class
4.Simple Queue (FIFO) based on LinkedList
5.The Generic Queue Class
6.Blocking Queue
7.Circular Queue
8.Circular Queue extends AbstractList
9.How to extend the collections framework
10.An unbounded {@link TransferQueue} based on linked nodes.
11.This class implements the data structures necessary for an ArrayQueue
12.A circular queue from mina
13.An unbounded TransferQueue based on linked nodes.
14.Rotating queue of fixed size.
15.Allows threads to communicate asynchronously by putting messages into and reading messages out of a synchronized queue.
close