PriorityQueue - 优先队列
正常写入,按照优先级出
实现机制
- Heap堆,包括Binary 二叉堆、Binomial 多项式堆、Fibonacci 斐波那契堆
- Binary Search Tree 二叉搜索树
小顶堆,越小的越排在前面,最小的在顶部

大顶堆,与小顶堆相反

各种类型的堆的性能比较

可以看到Fibonacci堆在查找、插入、删除、合并上面都有非常好的性能,所以我们在Python中的堆和Java中使用的PriorityQueue都是Fibonacci堆或者平衡二叉树(红黑树)