目录
1.二叉堆(Binary Heap)、二项堆、斐波那契堆(简称Fib堆)的比较:
相同:
- 都是可归并堆(Mergeable Heap);
- 它们都支持5个基本操作(创建、插入、查找最小值、抽取最小值、合并堆)和2个扩展操作
(结点减值、结点删除)。
不同:
- 二叉堆是一种结点有序的完全二叉树,可采用数组结构存储,通过数组下标索引结点,分最大
堆和最小堆。 二项堆和Fib堆都是最小堆。 - 二项堆由二项树组成,结构比二叉堆复杂,但其堆合并操作的时间复杂度较好。当堆合并操作
较多时,可使用二项堆。反之,使用二叉堆即可。
2. 二项树
2.1 定义
仅包含一个结点的有序树是一棵二项树(B_0树)。二项树B_k由两棵B_{k-1}树组成,其中一
棵B_{k-1}树的根作为另一棵B_{k-1}树根的最左孩子(k≥0)。