public class SortedSequencePriorityQueue2 extends SortedSequencePriorityQueue implements PriorityQueue2 { public SortedSequencePriorityQueue2 (Comparator comp) { super(comp); } protected Locator locInsert(Item2 locitem) throws InvalidKeyException { Position p, curr; Object k = locitem.key(); if (!comp.isComparable(k)) throw new InvalidKeyException("The key is not valid"); else if (S.isEmpty()) p = S.insertFirst(locitem); else if (comp.isGreaterThan(k, key(S.last()))) p = S.insertAfter(S.last(),locitem); else { curr = S.first(); while (comp.isGreaterThan(k, key(curr))) curr = S.after(curr); p = S.insertBefore(curr,locitem); } locitem.setPosition(p); return (Locator) locitem; } protected Item2 locRemove(Locator loc) { S.remove(((Item2) loc).position()); return (Item2) loc; }