我的Github地址
小码哥《恋上数据结构与算法》笔记
极客时间《iOS开发高手课》笔记
iOS大厂面试高频算法题总结
iOS面试资料汇总
一、优先级队列(Priority Queue)
- 普通的队列是
先进先出原则。
- 优先级队列是按照
优先级高低进行出队,比如将优先级最高的元素作为队头优先出队。
- 使用场景:
- 医院急诊根据病人病情和挂号时间决定谁先看病。
- 操作系统的多任务调度,队列元素是任务,优先级是任务类型。
二、优先级队列(Priority Queue)底层实现
public class PriorityQueue<E> {
private BinaryHeap<E> heap;
public PriorityQueue(Comparator<E> comparator) {
heap = new BinaryHeap<>(comparator);
}
public PriorityQueue() {
this(null);
}
public int size() {
return heap.size();
}
public boolean isEmpty() {
return heap.isEmpty();
}
public void clear() {
heap.clear();
}
public void enQueue(E element) {
heap.add(element);
}
public E deQueue() {
return heap.remove();
}
public E front() {
return heap.get();
}
}