AVLツリーはウェイトバランスされていませんか?


22

前の質問では、重量バランスの取れた木の定義と赤黒木に関する質問がありました。

この質問は、AVLツリーの場合と同じ質問をすることです。

問題は、他の質問と同様にバランスのとれた木の定義を考えると、μ

いくつかありますすべての大きな十分なAVL木があるように、 -balancedは?μ>0μ

AVLツリーの定義は1つだけで、あいまいさはないと思います。

回答:


18

主張:いいえ、そのようなはありません。μ

証明:重みのバランス値がになりがちで、主張と矛盾する、成長するサイズのAVLツリーの無限シーケンスを与えます。0

ましょう高さの完全なツリー。それが有するノード。 h 2 h + 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)

いくつかののの根の重みバランス値を考えます。 H ∈ N +Thh∈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
  • φ ≈ - 0.62ϕ≈1.6は黄金比、その共役です。ϕ^≈−0.62
  • F G LIM のn → ∞ F (N )f〜gは、とが漸近的に等しい、つまります。fgリムn→∞f(n)g(n)=1

注意:フィボナッチツリーは、特定の高さに対して最小のノード(または、同等に、特定のノード数に対して最大の高さ)を持つAVLツリーとまったく同じです。

補遺:教授が言及しているのを聞いていなかった場合、フィボナッチの木をどのように思い付くことができますか?さて、可能な限り少ないノードを持つ高さ AVLツリーはどのように見えるでしょうか?確かに、ルートが必要です。サブツリーの1つは高さを持つ必要があり、できるだけ少ないノードで選択する必要があります。もう1つは、高さのバランス条件に違反することなく高さを持つことができ、できるだけ少ないノードでも選択します。本質的に、再帰的に必要なツリーを構築します!これらは最初の4つです。h − 1 h − 2hh−1h−2

最初の4つのフィボナッチツリー
[ ソース ]

このようにして構築された高さツリーのノード数繰り返しを設定します。hf(h)h

f(1)=1f(2)=2f(h)=f(h−1)+f(h−2)+1n≥3

それを解くと、上記で使用したになります。f(h)=Fh+2−1


Nievergelt and Reingold(1972)による有界バランスの二分探索木にも同じ証明が(詳細はありませんが)与えられています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.