public interface PriorityQueue { /** * A priority queue is a container of key-element pairs where the key stands for * the element's priority in the queue when inserted. The priority queue has a * removeMin method that gurantees that the object returned is associtaed with * a key that is less than equal to all other keys in the tree. The order of * the keys is according to the natural ordering of its keys (see the Comparable interface), or by a * comparator provided at creation time. * Apart from 1) A void (no arguments) constructor, which creates an empty priority queue sorted according to the natural order of its keys * 2. A constructor with a single argument of type Comparator, which creates an empty priority queue sorted according to the specified comparator. *

*/ /** Returns the number of key-element pairs in the priority queue. */ public int size(); /** * Returns true if and only if this queue contains no key-element pairs. */ public boolean isEmpty(); /** * Insert an item with element element and key key * into this dictionary. */ public void insertItem(Object key, Object element); /** * Removes a key-element pair where, (k,e), where k is * smaller or equal to all other keys i the priority queue. It * returns null if the priorityqueue is empty otherwise e. */ public Object removeMin(); /** * Returns an element,e with a key smaller than or equal to all other keys. It * returns null if this priorityqueue is empty. */ public Object minElement(); /** * Returns a key,k that is smaller than or equal to all other keys. It * returns null if this priorityqueue is empty. */ public Object minKey(); }