Kiegyensúlyozott és tökéletesen kiegyensúlyozott fák

Fa tökéletesen kiegyensúlyozott. ha az egyes csomóponti csomópontok száma a bal és a jobb részfa nem tér el több, mint 1.

A fa kiegyensúlyozott. ha minden egyes csomóponthoz a magassága két megfelelő részfák különböznek nem több, mint 1.

Keresés fa - egy fa, amelynek minden csúcsa

Kiegyensúlyozott és tökéletesen kiegyensúlyozott fák
az állítást, hogy az összes funkció annak bal részfa kisebb, mint a kulcs
Kiegyensúlyozott és tökéletesen kiegyensúlyozott fák
, és a jobb - több kulcs
Kiegyensúlyozott és tökéletesen kiegyensúlyozott fák
. Keresés ebben a fa csak akkor valósulhat meg egyetlen sávon.

AVL-fát (Adelson-Belsky, Landis) - kiegyensúlyozott keresési fa.

Ábra. 6. Példák bináris fák.

a), b) - a kiegyensúlyozott fák; b) - a tökéletesen kiegyensúlyozott fa. keresési fa, AVL-fa

Ami ideális a kiegyensúlyozott fa

A szekvenciát a lépéseket, hogy létrehozzon egy tökéletesen kiegyensúlyozott fát egy előre ismert csomópontok száma (n):

Hoz létre egy gyökér csomópontot;

Hasonló módon a bal oldali részfa szerkesztünk, amely tartalmazza nl = n div 2 csúcsú;

Hasonló módon a megfelelő részfa szerkesztünk, amely tartalmazza nr = n-NL-1 csúcsok;

A rekurzió megszűnik, ha részfa nem tartalmaz vertex (n = 0).

3. példa ELJÁRÁS az ideális kiegyensúlyozott fába

ha (x

ha (x> p ^ .key) majd a Keresés (x, p ^ .Right)

mást writeln ( 'egység van)

Rekurzív eljárást keresést egy értéket a fa pótlására elegendő a blokk beillesztése egy új csomópont egy üzenetet jelenít meg (vagy vissza nulla értékkel), és egy figyelmeztető üzenet „egység van egy” akkor hagyja (vagy hivatkozás helyébe a talált csomópont).

A keresési fa rendezni az adatokat - az épület egy keresési fát, majd körbejárja azt a szabályt, a LPC (emelkedő) vagy PCL (csökkenő)

8. példa ELJÁRÁS keresés a (nem rekurzív) ...

REF2 Draw fák, amelyek létre CreateTree funkció (3. példa) és eljárás keresése (7. példa) a bemeneti karakter sorozat „számítógépek”.

Megjegyzés. . Lásd még a program: TreeSearch.exe (a \ Program Files \ 02_DerevoPoiska) - létrehozását a keresési fa és annak kijátszása; Demt.exe (a \ Program Files \ 03_DerevoPoiska) - létrehozását a keresési fa és kiegyensúlyozott.

Vegye ki a csomópont a keresési fák

10. példa törlési eljárás NODE keresési fa

Megjegyzés: Ha töröl egy elemet a hozzá tartozó két leszármazottai szubsztitúció játszódik jobb legtöbb eleme a bal részfa (lásd protsedurudel).

ELJÁRÁS DELNODE (x: char; VAR p: fa);

eljárás del (var r: fa);

Kapcsolódó cikkek