public interface PriorityQueue
{
  // postcondition: returns true if the number of elements in
  //                the priority queue is 0;
  //                otherwise, returns false
  public boolean isEmpty();

  // postcondition: item has been added to the priority queue; the
  //                number of elements in the priority queue is
  //                increased by 1
  public void add(Object item);

  // precondition:  The priority queue is not empty
  // postcondition: The smallest item in the priority queue is
  //                removed and returned; the number of elements in
  //                the priority queue is decreased by 1.
  // exceptions:    Throws an unchecked exception if the priority
  //                queue is empty.
  public Object removeMin();

  // precondition:  The priority queue is not empty
  // postcondition: The smallest item in the priority queue is
  //                returned; the number of elements in
  //                the priority queue is decreased by 1.
  // exceptions:    Throws an unchecked exception if the priority
  //                queue is empty.
  public Object peekMin();

}


