edu.stanford.nlp.util
Interface PriorityQueue<E>

All Superinterfaces:
Collection<E>, Iterable<E>, Set<E>
All Known Implementing Classes:
BinaryHeapPriorityQueue

public interface PriorityQueue<E>
extends Set<E>

A Set that also represents an ordering of its elements, and responds quickly to add(), changePriority(), removeFirst(), and getFirst() method calls.

Author:
Teg Grenager (greuager@cs.stanford.edu)

Method Summary
 boolean add(E key, double priority)
          Convenience method for if you want to pretend relaxPriority doesn't exist, or if you really want add's return conditions.
 boolean changePriority(E key, double priority)
          Changes a priority, either up or down, adding the key it if it wasn't there already.
 E getFirst()
          Finds the object with the highest priority and returns it, without modifying the queue.
 double getPriority(Object key)
          Get the priority of a key.
 boolean relaxPriority(E key, double priority)
          Increases the priority of the Object key to the new priority if the old priority was lower than the new priority.
 E removeFirst()
          Finds the object with the highest priority, removes it, and returns it.
 List<E> toSortedList()
           
 
Methods inherited from interface java.util.Set
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 

Method Detail

removeFirst

E removeFirst()
Finds the object with the highest priority, removes it, and returns it.

Returns:
the object with highest priority

getFirst

E getFirst()
Finds the object with the highest priority and returns it, without modifying the queue.

Returns:
the object with minimum key

getPriority

double getPriority(Object key)
Get the priority of a key.

Parameters:
key - The object to assess
Returns:
A key's priority. If the key is not in the queue, Double.NEGATIVE_INFINITY is returned.

add

boolean add(E key,
            double priority)
Convenience method for if you want to pretend relaxPriority doesn't exist, or if you really want add's return conditions.

Returns:
true if this set did not already contain the specified element.

changePriority

boolean changePriority(E key,
                       double priority)
Changes a priority, either up or down, adding the key it if it wasn't there already.

Parameters:
key - an Object value
Returns:
whether the priority actually changed.

relaxPriority

boolean relaxPriority(E key,
                      double priority)
Increases the priority of the Object key to the new priority if the old priority was lower than the new priority. Otherwise, does nothing.

Parameters:
key -
priority -
Returns:

toSortedList

List<E> toSortedList()


Stanford NLP Group