Я бы начал с чего-то подобного. Основная идея состоит в том, что у вас есть внутренний список, и когда вы вставляете новый элемент, вы выполняете двоичный поиск, чтобы найти, где он принадлежит в этом списке. Таким образом, ваш внутренний список всегда сортируется, поэтому, когда вы вызываете remove(), вы просто берете последний (или первый в зависимости от того, как вы заказываете вещи).
Отказ от ответственности: Это следует рассматривать как псевдокод. Я знаю, что есть проблемы с этим. Он предназначен только для начала.
public class PQueueImpl<T> implements PQueue<T> {
private List<T> internalQueue;
public void insert(T item){
int insertionPoint = Collections.binarySearch(internalQueue, item);
internalQueue.add(insertionPoint, item);
}
public T remove(){
return internalQueue.remove(internalQueue.size() - 1);
}
}
http://download.oracle.com/javase/6/docs/api/java/util/PriorityQueue.html? – kennytm
Это домашнее задание? –
Демонстрируйте, что вы приложили немного усилий. Читайте о очередях очередности в Интернете или в учебнике, а затем покажите нам свою попытку. –