Gli alberi AVL non sono bilanciati in base al peso?


22

In una domanda precedente c'era una definizione di alberi equilibrati e una domanda relativa agli alberi rosso-neri.

Questa domanda è di porre la stessa domanda, ma per gli alberi AVL .

La domanda è, data la definizione di alberi bilanciati con μ come nell'altra domanda,

C'è qualche μ>0 tale che tutti gli alberi AVL abbastanza grandi sono bilanciati in μ ?

Presumo che vi sia una sola definizione di alberi AVL e non vi siano ambiguità.

Risposte:


18

Reclamo : No, non esiste tale μ .

Prova : diamo una sequenza infinita di alberi AVL di dimensioni crescenti il ​​cui valore di bilanciamento del peso tende a 0 , contraddicendo l'affermazione.

Lascia che Ch l'albero completo di altezza h ; ha 2h+11 nodi.

Sia Sh l' albero di Fibonacci di altezza h ; ha nodi Fh+21 . [ 1 , 2 , TAoCP 3 ]

Ora lascia (Th)i1 con Th=N(Sh,Ch) la sequenza di alberi che sosteniamo essere un contro esempio.

Considera il valore di bilanciamento del peso della radice di Th per qualche hN+ :

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

Questo conclude la prova.

Notazione :

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

Nota bene : gli alberi Fibonacci sono esattamente quegli alberi AVL con il minor numero di nodi per una determinata altezza (o, equivalentemente, l'altezza massima per un dato numero di nodi).

Addendum : Come possiamo inventare alberi di Fibonacci se non avessimo sentito un professore menzionarli? Bene, come sarebbe un albero AVL di altezza con il minor numero di nodi possibile? Certamente, hai bisogno di una radice. Uno dei sottotitoli deve avere altezza e dobbiamo sceglierlo con il minor numero di nodi possibile. L'altro può avere altezza senza violare la condizione di bilanciamento dell'altezza e lo scegliamo anche con il minor numero di nodi possibile. In sostanza, costruiamo gli alberi che vogliamo ricorsivamente! Questi sono i primi quattro:hh1h2

Primi quattro alberi di Fibonacci
[ fonte ]

Abbiamo impostato una ricorrenza per il numero di nodi nell'albero così costruito con altezza :f(h)h

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

Risolvendolo si ottiene che abbiamo usato sopra.f(h)=Fh+21


La stessa prova è data (con meno dettagli) negli alberi di ricerca binaria di equilibrio limitato da Nievergelt e Reingold (1972).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.