在AVL-Tree中,为什么在删除时需要多一种轮换的表现?
In AVL-Tree, why needs more one performance of rotation in deletion?
设 z 为第一个不平衡节点。
在删除中,我们在z处进行了一次旋转之后,可能还要在z的祖先处进行一次旋转。因此,我们必须继续追踪路径,直到到达根。http://www.geeksforgeeks.org/avl-tree-set-2-deletion/
但为什么 z 的祖先可能需要轮换?
这是因为子树可能变短了,这可能会在任何级别违反 AVL 条件。举个例子
5
2 8
1 3 7 10
4 6 9 11
12
删除 1 后,需要在 2 和 5 进行旋转。
设 z 为第一个不平衡节点。
在删除中,我们在z处进行了一次旋转之后,可能还要在z的祖先处进行一次旋转。因此,我们必须继续追踪路径,直到到达根。http://www.geeksforgeeks.org/avl-tree-set-2-deletion/
但为什么 z 的祖先可能需要轮换?
这是因为子树可能变短了,这可能会在任何级别违反 AVL 条件。举个例子
5
2 8
1 3 7 10
4 6 9 11
12
删除 1 后,需要在 2 和 5 进行旋转。