AVL-Bäume sind nicht gewichtsausgeglichen?


22

In einer früheren Frage gab es eine Definition von gewichtsausgeglichenen Bäumen und eine Frage zu rot-schwarzen Bäumen.

Diese Frage ist die gleiche Frage zu stellen, aber für AVL-Bäume .

Die Frage ist, angesichts der Definition von μ ausgeglichenen Bäumen wie in der anderen Frage,

Gibt es einige μ>0 so dass alle ausreichend großen AVL-Bäume μ ausgeglichen sind?

Ich gehe davon aus, dass es nur eine Definition von AVL-Bäumen gibt und es keine Mehrdeutigkeit gibt.

Antworten:


18

Behauptung : Nein, es gibt kein solches μ .

Beweis : Wir geben eine unendliche Folge von AVL-Bäumen wachsender Größe an, deren Gewichtsausgleichswert gegen tendiert 0, was der Behauptung widerspricht.

Sei Ch der vollständige Baum der Höhe h ; es hat 2h+11 Knoten.

Sei Sh der Fibonacci-Baum der Höhe h ; es hat Fh+21 Knoten. [ 1 , 2 , TAoCP 3 ]

Nun sei (Th)i1 mit Th=N(Sh,Ch) die Folge von Bäumen, die wir für ein Gegenbeispiel halten.

Betrachten Sie den Gewichtsausgleichswert der Wurzel von Th für einige hN+ :

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

Damit ist der Beweis abgeschlossen.

Notation :

  • Fnn
  • ϕ1.6ϕ^0.62
  • fgfglimnf(n)g(n)=1

Anmerkung : Fibonacci-Bäume sind genau die AVL-Bäume mit den geringsten Knoten für eine bestimmte Höhe (oder entsprechend der maximalen Höhe für eine bestimmte Anzahl von Knoten).

Nachtrag : Wie können wir zu Fibonacci-Bäumen kommen, wenn wir nicht gehört hätten, dass ein Professor sie erwähnt hat? Nun, wie würde ein AVL-Baum der Höhe mit möglichst wenigen Knoten aussehen? Natürlich brauchst du eine Wurzel. Einer der Teilbäume muss die Höhe , und wir müssen ihn mit möglichst wenigen Knoten auswählen. Die andere kann die Höhe ohne die Höhenausgleichsbedingung zu verletzen, und wir wählen sie auch mit so wenigen Knoten wie möglich. Im Wesentlichen konstruieren wir die Bäume, die wir rekursiv wollen! Dies sind die ersten vier:h - 1 h - 2hh1h2

Erste vier Fibonacci-Bäume
[ Quelle ]

Wir haben eine Wiederholung für die Anzahl der Knoten in dem so konstruierten Baum mit der Höhe :hf(h)h

f(1)=1f(2)=2f(h)=f(h1)+f(h2)+1n3

Das Lösen führt zu das wir oben verwendet haben.f(h)=Fh+21


Der gleiche Beweis wird (mit weniger Details) in Binary Search Trees of Bounded Balance von Nievergelt und Reingold (1972) erbracht.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.