/** Implementation of a priority queue by means of a sorted list */
public class SortedListPriorityQueue implements PriorityQueue {
protected List L;
protected Comparator c;
protected Position actionPos; // variable used by subclasses
/** Inner class for entries */
protected static class MyEntry implements Entry {
protected Object k; // key
protected Object v; // value
public MyEntry(Object key, Object value) {
k = key;
v = value;
}
// methods of the Entry interface
public Object key() { return k; }
public Object value() { return v; }
}
/** Inner class for a default comparator using the natural ordering */
protected static class DefaultComparator implements Comparator {
public DefaultComparator() { /* default constructor */ }
public int compare(Object a, Object b) throws ClassCastException {
return ((Comparable) a).compareTo(b);
}
}
/** Creates the priority queue with the default comparator. */
public SortedListPriorityQueue () {
L = new NodeList();
c = new DefaultComparator();
}
/** Creates the priority queue with the given comparator. */
public SortedListPriorityQueue (Comparator comp) {
L = new NodeList();
c = comp;
}