我正在阅读Mark Allen Wesis的数据结构和算法中的AVL树
假设要重新平衡的节点是X.我们有4种情况 可能要修复(两个是另外两个的镜像):An 插入X的左子节点的左子树,插入 X的左子项的右子树,左侧的插入 X的右子树的子树,或右子树中的插入 X的正确孩子。
通过树旋转恢复平衡。
以下是我在上面的文字摘要中提出的问题。
由于
答案 0 :(得分:2)
假设插入的节点是I.书中说有4个案例。让我们来看看我是X的左子女的左孩子:
X
/ \
? ?
/ \ / \
I ? ? ?
这是“镜子”,当我是X的正确孩子的正确孩子时:
X
/ \
? ?
/ \ / \
? ? ? I
这是一个“镜子”的原因是你必须为两种情况做的旋转是相同的,只是左右颠倒。其他两种情况也是如此,我是X的右孩子的左孩子,我是X的左子女的右孩子。
至于你的第二个问题,这个想法是一样的。在对称的情况下(即镜像盒),你可以进行相同的旋转,只需左右颠倒。