对于二叉堆而言,对find 和 merge操作的支持不够。这是由二叉堆的存储结构决定的,因为二叉堆中的元素实际存储在数组中。正因为如此,所有支持有效合并的高级数据结构都需要使用链式数据结构。
六,其他形式的“堆”
为了克服二叉堆的不足,提出了一面一些类型的堆,它们主要是为了支持merge 和 find 操作。这就不详细介绍了。
①左式堆
对堆的结构有一定的要求:它有一个“零路径长”的概念,①任意一个节点的零路径长比它的各个儿子的零路径长的最小值大1。②对于堆中每一个节点,它的左儿子的零路径长至少与右儿子的零路径长相等。
②斜堆
对堆的结构没有要求。