在AVL-Tree中,为什么在删除时需要更多的旋转性能?

时间:2017-10-12 05:59:22

标签: algorithm avl-tree

让z成为第一个不平衡的节点。

在删除中,在z处执行旋转后,我们可能必须在z的祖先执行旋转。因此,我们必须继续追踪路径,直到我们到达根。http://www.geeksforgeeks.org/avl-tree-set-2-deletion/

但为什么z的祖先可能需要轮换?

1 个答案:

答案 0 :(得分:1)

这是因为子树可能变得更短,这可能违反任何级别的AVL条件。举个例子

              5
      2               8
   1     3         7     10
           4      6    9    11
                              12

删除1后,需要在2处旋转,也需要在5处旋转。