【发布时间】:2018-11-07 03:28:45
【问题描述】:
我正在尝试用红黑树解决这个练习:我需要按此顺序插入 2、1、4、5、9。在最后一个输入之后,我需要用 Insert-Fixup 算法来平衡它:
我需要遵循的算法部分是:
if z == z.p.right
z = z.p
LEFT-ROTATE (T, z)
z.p.color = BLACK
z.p.p.color = RED
RIGHT-ROTATE (T, z.p.p)
(Z 是我要插入的节点),z.p 是它的父亲。所以我试着按照这些步骤直到左旋转,结果是这样的:对吗?
我在互联网上搜索,我读到有双旋转算法,但我不知道我是否可以在这里使用它们而不是使用单旋转(例如,我不知道用4)。
【问题讨论】:
-
你不能在 4 处向右旋转,因为它没有左孩子。您正在查看的修复案例不适合您的树形。如果您要插入 4 的 left 子树,它会起作用
标签: algorithm tree rotation red-black-tree