声明:不,没有这样的。μ
证明:我们给出了一个不断增长的AVL树的无穷序列,其权衡值趋于,与主张相反。0
令为高度为的完整树;它有节点。 H ^ 2 ħ + 1 - 1Chh2h+1−1
让的斐波那契树高度的 ; 它具有节点。[ 1,2,TAOCP 3 ]ShF h + 2 − 1hFh+2−1
现在让其中T_h = N(S_h,C_h)是我们声称是反例的树序列。 Ť ħ = Ñ (小号ħ,Ç ħ)(Th)i≥1Th=N(Sh,Ch)
考虑T_h的根的权重平衡值,该值在\ mathbb {N} _ ++中TH为^ h ∈N+:
Fh + 22h+1+Fh+2−1=11+2h+1Fh+2−1Fh+2∼Fh+22h+1=15√(ϕh+2−ϕ^h+2)2h+1∼ϕh+25–√⋅2h+1→h→∞0
这证明了结论。
记法:
- Fn是第ñ个斐波那契数
- φ ≈ 1.6是黄金比率,其共轭。ϕ^≈ - 0.62
- F〜克表示和渐近相等,即。克LIM Ñ →交通∞ ˚F (Ñ )FG林n → ∞F(n )G(n )= 1
注意:斐波纳契树恰好是那些具有给定高度(或等效地,给定数量的节点的最大高度)的最小节点的AVL树。
附录:如果我们没有听到教授提到斐波那契树的话,我们怎么想出来?那么,高度为且具有尽可能少的节点的AVL树会是什么样子?当然,您需要一个根。子树之一需要具有高度,并且我们必须选择具有尽可能少的节点的高度。另一个可以具有高度而不会违反高度平衡条件,因此我们选择的节点数也应尽可能少。本质上,我们递归构造我们想要的树!这些是前四个:h − 1 h − 2Hh − 1h − 2
[ 来源 ]
我们为高度为的如此构造的树中的节点数建立一个递归:hF(小时)H
F(1 )F(2 )F(小时)= 1= 2= f(h − 1 )+ f(h − 2 )+ 1Ñ ≥ 3
解决它导致我们在上面使用的。F(h )= Fh + 2− 1
Nievergelt和Reingold(1972)在有界平衡的二叉搜索树中给出了相同的证明(细节较少)。