优先级高者先出的队列——优先队列(Priority Queue)
设计背景
是先入队的元素先出队,它的权重衡量是入队的先后,我们希望设计一种按照特定衡量标准进行优先级排序的队列,这种队列就叫做优先队列(Priority Queue)
结构分析
【底层实现】Heap等 【核心方法】同队列
代码实现
利用实现优先队列:
public class PriorityQueue<E extends Comparable<E>> implements Queue<E> { private MaxHeap<E> maxHeap; public PriorityQueue() { maxHeap = new MaxHeap<>(); } @Override public void enqueue(E e) { maxHeap.add(e); } @Override public E dequeue() { return maxHeap.extractMax(); } @Override public E getFront() { return maxHeap.findMax(); } @Override public boolean isEmpty() { return maxHeap.isEmpty(); } @Override public int getSize() { return maxHeap.size(); } }