优先队列 二叉堆 概念
1.优先队列 相比普通队列,其执行顺序先按优先级再按插入顺序。支持至少两种基本操作 插入 及 删除最小。
2.二叉堆 优先队列的一种实现,是一颗除最下层外被完全填满的二叉树。底层结构可用数组表示。树的元素应能比较大小。最小的在根部。
3.堆序 二叉堆的节点需满足:节点的数值大于等于父节点的数值。
4.优先队列 典型场景即 操作系统对进程的调度
5.java中的优先队列实现类是PriorityQueue<E>
6.左式堆 一种能很好支持合并操作的堆。左儿子的零路径长大于等于右儿子的零路径长。(零路径:到一个缺儿子的点的距离 , null为 -1 )
7.左式堆合并操作 对两个堆p和q,假设p的根大于q的根,则先将p与q的右子树进行合并(递归式的),然后将合并后的子树作为q的右子树,若q的左儿子零路径长小于右儿子,则交换q的左右儿子即可
8.二项队列,由二项树构成的集合,二项树的结点数为2的幂,结点大小规则与堆一致;二项队列中,每个2的幂只能有一个二项树;二项树的结点需要两个指向,一个指向下一个二项树,一个指向自己的第一个儿子。

浙公网安备 33010602011771号