这里我们将了解什么是区间堆。区间堆是完全二叉树,其中除了最后一个节点之外,每个节点都包含两个元素。设节点 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 ... 阅读更多