我试图在重新平衡完成时弄清楚红黑树中的旋转。我理解为什么轮换正在发生,但我不明白它是如何完成的。此外,LL,RR,LR和RL之类的中间旋转是为了达到结果而进行的,如果有人告诉我关于何时进行这些旋转中的任何一个的任何经验法则我也会感激。这是轮换:
Rr(2) is the case when black node deficiency is in right child of "py" i.e.
"y" and grandchild of "v" are 2 red nodes i.e. "b" and "x"
答案 0 :(得分:1)
您可以尝试通过将操作分解为不同的旋转来更好地理解红黑树中的旋转。左倾红黑BST只有3种基本操作。操作按照本幻灯片中列出的顺序执行。
此外,您显示的红黑树不正确,因为它违反了红黑树的条件。即。从根到叶子的每条路径必须具有相同数量的黑色边缘。但是在最后一棵树中,从x到c的路径有2个黑色边缘,而从x到a的路径有1个黑色边缘。我建议您阅读here中有关自平衡BST和红黑BST的更多信息。
PS。我不拥有幻灯片。它取自Robert Sedgewick的课程中的算法课程。