gpt4 book ai didi

algorithm - 删除根节点后重新平衡 2-3 树的正确方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:48:45 25 4
gpt4 key购买 nike

目标是从根节点中删除 22 并重新平衡树。

首先我删除了 22,并用它的顺序后继者 28 替换它。

其次,我通过将空节点向左移动来重新平衡生成的树。结果树如下。

向上移动 28 是否正确,最后我是否正确平衡了左侧?

         22,34
/ | \
16 28 37
/ \ / \ / \
15 21 25 33 35 43

[28],34
/ | \
16 * 37
/ \ / \ / \
15 21 25 33 35 43

34
/ \
16,28 37
/ | \ / \
15 21,25 33 35 43

谢谢!

最佳答案

中删除 22
       22,34
/ | \
16 28 37
/ \ / \ / \
15 21 25 33 35 43 ,

我们用它的顺序后继 25 替换它,留下一个洞 (*)。

       25,34
/ | \
16 28 37
/ \ / \ / \
15 21 * 33 35 43

我们不能通过借用来修复这个洞,所以我们将它的父级合并到它的兄弟级中,把这个洞向上移动。

       25,34
/ | \
16 * 37
/ \ | / \
15 21 28,33 35 43

这个洞现在有两个 sibling ,所以我们可以重新分配 parent 的 key 之一。

         34
/ \
16,25 37
/ | \ / \
15 21 28,33 35 43

(我在 this set of lecture notes 工作。除非是为了考试,否则不要费心记住这里的细节。即便如此......我真的希望数据结构类(class)没有像他们那样强调平衡搜索树.)

关于algorithm - 删除根节点后重新平衡 2-3 树的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35683550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com