在数据结构中合并两个 Max HBLT


合并策略使用递归来实现。假设 A 和 B 是要合并的两个 HBLT。如果其中一个为空,则只需将另一个设为最终结果即可。如果没有空 HBLT,则我们必须比较两个根节点中的元素。元素较大的根节点将成为合并后的 HBLT 的根节点。

假设 A 的根节点较大。且其左子树为 L。假设 C 是经过合并 A 的右子树和 HBLT B 而得出的最大 HBLT。最终的 HBLT 将以 A 为根节点,以 L 和 C 为其子树。如果 L 的 s 值小于 C 的 s 值,则 C 实际上就是左子树。否则,L 将是左子树。

假设我们有两个元素,如下所示 −

我们要把它们合并起来。(该节点保存值,节点外部的数字是对应节点的 s 值。)

现在让我们看看如何合并。假设 7 被添加为 9 的右子节点,但是此处,9 的 s(L) 为 0,而 s(R) 为 1,因此它们将被交换,并且 7 将成为其右子节点。

另一个示例

暂时将较小的 HBLT 添加到较大的 HBLT 的右侧。

这无法维护 HBLT 的特性,

更新于: 2020 年 8 月 11 日

231 次浏览

开启你的 职业

完成课程获得认证

开始学习
广告