【发布时间】:2014-03-12 23:05:27
【问题描述】:
假设我有一个平衡的 AVL 树,在 ADD 之后,它变得不平衡。 AVL 树是否总是通过单轮或双轮重新平衡,或者是否存在需要更多轮转的情况?
【问题讨论】:
假设我有一个平衡的 AVL 树,在 ADD 之后,它变得不平衡。 AVL 树是否总是通过单轮或双轮重新平衡,或者是否存在需要更多轮转的情况?
【问题讨论】:
假设平衡不变量在插入之前得到满足,单次重新平衡将始终足以恢复平衡不变量。
AVL 不变量是任何节点的子深度最多相差 1。单次插入后,子深度最多相差 2。单次遍历到插入节点的路径,必要时旋转,能够解决不平衡。
【讨论】: