public Locator min () throws PriorityQueueEmptyException {
if (S.isEmpty())
throw new PriorityQueueEmptyException("The priority queue is empty");
else
return (Locator) S.first().element();
}
public void insert(Locator loc) throws InvalidKeyException {
locInsert((Item2) loc);
}
public Locator insert(Object k, Object e) throws InvalidKeyException {
Item2 locitem = new Item2(k, e, null);
return locInsert(locitem);
}
public void insertItem (Object k, Object e) throws InvalidKeyException {
insert(k, e);
}
public void remove(Locator loc) {
locRemove(loc);
}
public Object removeMin () throws PriorityQueueEmptyException {
Object toReturn = minElement();
remove(min());
return toReturn;
}
public Object replaceElement (Locator loc, Object newElement) {
Object oldElement = ((Item2) loc).element();
((Item2) loc).setElement(newElement);
return oldElement;
}
public Object replaceKey(Locator loc, Object newKey)
throws InvalidKeyException {
Item2 locitem = locRemove(loc);
Object oldKey = ((Item2) loc).key();
locitem.setKey(newKey);
locInsert(locitem);
return oldKey;
}
}