从间隔堆中删除最小元素

  • 在间隔堆中,最小的元素是根节点左侧的元素。该元素被消除并返回。

  • 为了填补在根节点左侧创建的空缺,消除了最后一个节点中的元素,然后再次将其插入到根节点中。

  • 接下来,将该元素与降序节点的所有左手元素进行连续比较,并在满足间隔堆的所有条件时终止该过程。

  • 如果节点中的左侧元素在任何阶段都变得高于右侧元素,则交换这两个元素,然后执行进一步的比较。

  • 最后,根节点将再次在左侧包含最小的元素。

也可以通过以下方式解释此过程-

删除最小元素的方法有以下几种:

  • 当间隔堆为空时,removeMin操作将失败。

  • 当间隔堆只有一个元素时,应返回此元素。我们留下没有任何元素的间隔堆。

  • 如果有多个元素,则应返回根的左端点。从根本上消除了这一点。

  • 如果根节点指示间隔堆的最后一个节点,则无需执行其他任何操作。

  • 当最后一个节点不是根节点时,我们从最后一个节点中消除左点p。如果这导致最后一个节点空闲,则最后一个节点不再是堆的一部分。

  • 通过从根节点开始,将从最后一个节点消除的点p重新插入到嵌入式min堆中。

  • 当我们向下移动时,可能有必要将电流p与被检查节点的右端点r交换,以确保p≤r。执行重新插入时所执行的策略与重新插入普通堆时所用的策略相同。

以上是 从间隔堆中删除最小元素 的全部内容, 来源链接: utcz.com/z/356771.html

回到顶部