写一个队列queue接口,功能获得长度,是否为空,入队,出队,查看队首。
public interface Queue<E> {
int getSize();
boolean isEmpty();
void enqueue(E e);
E dequeue();
E getFront();
}
基于最大堆实现优先队列
public class PriorityQueue<E extends Comparable<E>> implements Queue<E> {
private MaxHeap<E> maxHeap;
@Override
public int getSize() {
return maxHeap.size();
}
@Override
public boolean isEmpty() {
return maxHeap.isEmpty();
}
@Override
public void enqueue(E e) {
maxHeap.add(e);
}
@Override
public E dequeue() {
return maxHeap.extraMax();
}
@Override
public E getFront() {
return maxHeap.findMax();
}
}
很简单,功能全部基于堆实现。