java优先队列的实现
//以堆作为底层数据结构实现,对的实现看上一篇文章
public class PriorityQueue<E extends Comparable<E>> {
private MaxHeap maxHeap ;
public PriorityQueue() {
maxHeap = new MaxHeap() ;
}
public void enQueue(E e) {
maxHeap.add(e);
}
public E deQueue() {
return (E) maxHeap.extractMax() ;
}
public boolean isEMpty() {
return maxHeap.isEmpty() ;
}
public int getSize() {
return maxHeap.getSize() ;
}
public E getFront() {
return (E)maxHeap.getFront() ;
}
public static void main(String[] args) {
PriorityQueue<Integer> PQ = new PriorityQueue<>() ;
PQ.enQueue(12);
PQ.enQueue(13);
PQ.enQueue(14);
PQ.enQueue(9);
PQ.enQueue(4);
System.out.println("输出队首元素:");
System.out.println(PQ.getFront());
System.out.println("删除队首元素:");
System.out.println(PQ.deQueue());
System.out.println("获取队首元素:");
System.out.println(PQ.getFront());
System.out.println("获取队列的大小:");
System.out.println(PQ.getSize());
System.out.println("判断队列是否为空:");
System.out.println(PQ.isEMpty());
}
}