在这里我们将了解什么是区间堆。区间堆是完全二叉树,其中除了最后一个节点之外,每个节点都包含两个元素。假设节点 P 中两个元素的优先级为 'a' 和 'b'。在这里,我们考虑 a ≤ b。我们说节点 P 表示闭区间 [a, b]。这里 a 是 P 区间的左端点,b 是右端点。[c, d] 包含在区间 [a, b] 中,当且仅当 a ≤ c ≤ d ≤ b。在 ... 阅读更多
在这里我们将了解左倾树的另一种变体。在这里,我们将考虑子树中的节点数,而不是根到外部节点的最短路径的长度。在这里,我们将定义节点 x 的权重 w(x),为以 x 为根的子树中的内部节点数。如果 x 是外部节点,则权重为 0。如果 x 是内部节点,则权重比其子节点权重之和多 1。这是一个权重偏左树 (WBLT) 的示例 −假设二叉树是 ... 阅读更多
从最大或最小 HBLT 删除任意节点不是标准操作。对于优先队列或 HBLT。如果我们想从 HBLT 中删除一个节点,例如 K,我们必须遵循以下规则。将以 K 为根的子树从树中分离,并用 K 节点子树的合并替换它。更新从 K 到根的路径上的 s 值,并根据需要交换此路径上的子树以保持 HBLT 的属性。要更新从 K 到根的 s 值,我们需要每个节点的父节点指针。此更新 s ... 阅读更多