AVL树不平衡吗?


22

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

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

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

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

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

Answers:


18

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

证明:我们给出了一个不断增长的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是第n个斐波那契数
  • ϕ≈1.6是黄金比率,其共轭。ϕ^≈-0.62
  • F〜G表示和渐近相等,即。克LIM Ñ →交通∞ ˚F (Ñ )FG林ñ→∞F(ñ)G(ñ)=1个

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

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

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

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

F(1个)=1个F(2)=2F(H)=F(H-1个)+F(H-2)+1个ñ≥3

解决它导致我们在上面使用的。F(H)=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.