/** * A Java interface for the Updatable Priority Queue ADT. This allows the user * to query and change the priority of items in the queue.
* The items in an updatable priority queue must be unique; otherwise the * operations of getting or setting an item's priority would not be * well-defined (which copy of the item would we mean?).
* Each implementation of this interface shall define a special "sentinel" * priority value that indicates an item is not in the queue. Setting an * item's priority to this value in fact removes it from the queue. Removing a * non-member item is a no-op.
* In addition, adding an item may be accomplished, from the user side, simply
* by setting its priority to a non-sentinel value.
*
* @param the type of the priority of each item.
* @author Jadrian Miles
*/
public interface UpdatablePriorityQueue
* The consequences of this operation vary depending on two conditions:
* The four cases covered by combinations of these conditions are:
* The method returns true if the pair (item, newPriority) is in the queue
* after the call. (This is !DEL: true in cases 1 and 2; false in 3 and 4.)
*/
public boolean setPriority(T item, P newPriority);
/**
* Returns the priority of the given item, or, if that item is not in the
* queue, an implementation-specific sentinel value. (As in setPriority(),
* this queries the element x in the PQ for which x.equals(item) is true.)
*/
public P getPriority(T item);
/**
* Returns the sentinel value used by getPriority() to indicate items not
* currently stored in the queue.
*/
public P nonMemberPriority();
}
*
*