AVL树不平衡吗?


22

在上一个问题中,有一个平衡树的定义和一个关于红黑树的问题。

这个问题是要问同样的问题,但对于AVL树

问题是,鉴于平衡树的定义与其他问题相同,μ

是否有一些使所有足够大的AVL树达到平衡?μμ>0μ

我认为AVL树只有一种定义,没有歧义。

Answers:


18

声明:不,没有这样的。μ

证明:我们给出了一个不断增长的AVL树的无穷序列,其权衡值趋于,与主张相反。0

令为高度为的完整树;它有节点。 H ^ 2 ħ + 1 - 1Chh2h+11

让的斐波那契树高度的 ; 它具有节点。[ 12TAOCP 3 ]ShF h + 21hFh+21

现在让其中T_h = N(S_h,C_h)是我们声称是反例的树序列。 Ť ħ = Ñ 小号ħÇ ħ(Th)i1Th=N(Sh,Ch

考虑T_h的根的权重平衡值,该值在\ mathbb {N} _ ++中THhN+

Fh+22h+1+Fh+21=11+2h+1Fh+21Fh+2Fh+22h+1=15(ϕh+2ϕ^h+2)2h+1ϕh+252h+1h0

这证明了结论。

记法

  • Fn是第n斐波那契数
  • ϕ1.6黄金比率,其共轭。ϕ^-0.62
  • FG表示和渐近相等,即。LIM Ñ →交通˚F Ñ FGñFñGñ=1个

注意:斐波纳契树恰好是那些具有给定高度(或等效地,给定数量的节点的最大高度)的最小节点的AVL树。

附录:如果我们没有听到教授提到斐波那契树的话,我们怎么想出来?那么,高度为且具有尽可能少的节点的AVL树会是什么样子?当然,您需要一个根。子树之一需要具有高度,并且我们必须选择具有尽可能少的节点的高度。另一个可以具有高度而不会违反高度平衡条件,因此我们选择的节点数也应尽可能少。本质上,我们递归构造我们想要的树!这些是前四个:h 1 h 2HH-1个H-2

前四棵斐波那契树
[ 来源 ]

我们为高度为的如此构造的树中的节点数建立一个递归:hFHH

F1个=1个F2=2FH=FH-1个+FH-2+1个ñ3

解决它导致我们在上面使用的。FH=FH+2-1个


Nievergelt和Reingold(1972)在有界平衡的二叉搜索树中给出了相同的证明(细节较少)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.