avl-fa építése
DESCRIPTION
AVL-fa építése. Az AVL-fa (Adelszon-Velszkij és Landisz, 1962):. Az AVL-fa definíciója:. t kiegyensúlyozott (AVL-tulajdonságú) t minden x csúcsára: | h(bal(x)) – h(jobb(x)) | ≤ 1. - a majdnem teljes bináris fa AVL-tulajdonságú. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: AVL-fa építése](https://reader036.vdocuments.net/reader036/viewer/2022082408/56812c07550346895d9075d6/html5/thumbnails/1.jpg)
AVL-fa építése
![Page 2: AVL-fa építése](https://reader036.vdocuments.net/reader036/viewer/2022082408/56812c07550346895d9075d6/html5/thumbnails/2.jpg)
Az AVL-fa (Adelszon-Velszkij és Landisz, 1962):
t kiegyensúlyozott (AVL-tulajdonságú) <=> t minden x csúcsára: | h(bal(x)) – h(jobb(x)) | ≤ 1
- a majdnem teljes bináris fa AVL-tulajdonságú
- minden művelet (beszúrás és törlés) után ellenőrizzük, és ha kell, helyreállítjuk az AVL-tulajdonságot
- az AVL-fa maximális magassága 1,44log2n
Az AVL-fa definíciója:
![Page 3: AVL-fa építése](https://reader036.vdocuments.net/reader036/viewer/2022082408/56812c07550346895d9075d6/html5/thumbnails/3.jpg)
Milyen ráfordítással tartható fenn az AVL-tulajdonság:
1) A (++,+) szabály:
x
y
a
b c
++
+h
h h+1
- egy újabb elemet behelyezünk a fába, amely nagyobb a gyökérnél (x) és a gyökér jobb gyerekénél is, elromlik az AVL-tulajdonság
- az x bal részfájának a magassága h míg a jobb részfájának magassága h+2
![Page 4: AVL-fa építése](https://reader036.vdocuments.net/reader036/viewer/2022082408/56812c07550346895d9075d6/html5/thumbnails/4.jpg)
Forgatás segítségével helyreállítható az AVL-tulajdonság
x
y
a
h
b
c
h
h+1
x
y
a
b c
++
+h
h h+1
=>
- az y kerül a gyökérbe, az y bal részfáját átállítjuk az x jobb részfájának
- az x lesz az y bal oldali gyereke
- az y jobb és baloldali részfájának magassága h+1 lesz
- ennek a tükörképe a (--,-) szabály
![Page 5: AVL-fa építése](https://reader036.vdocuments.net/reader036/viewer/2022082408/56812c07550346895d9075d6/html5/thumbnails/5.jpg)
2) A (++,-) szabály:
x
y
a
b c
++
-h
hzd
h h
h h-1
h-1 h
- egy újabb elemet behelyezünk a fába, amely nagyobb a gyökérnél (x) és kisebb a gyökér jobb gyerekénél, elromlik az AVL-tulajdonság
- az x bal részfájának a magassága h míg a jobb részfájának magassága h+2
![Page 6: AVL-fa építése](https://reader036.vdocuments.net/reader036/viewer/2022082408/56812c07550346895d9075d6/html5/thumbnails/6.jpg)
Forgatás segítségével helyreállítható az AVL-tulajdonság
- a gyökérbe a z elem kerül, bal gyereke az x, jobb gyereke az y lesz
- a z bal részfája az x jobb részfája lesz
- a z jobb részfája az y bal részfája lesz
hh
x
y
a
b c
++
-h
hzd
h h
h h-1
h-1 h
x y
a b c
z
d
h h
h h-1
h-1 h
=>
![Page 7: AVL-fa építése](https://reader036.vdocuments.net/reader036/viewer/2022082408/56812c07550346895d9075d6/html5/thumbnails/7.jpg)
Pl.: Építsünk AVL-fát a következő adatokból:
170 74 81 185 150 144
100
100 136 122 52 190
74 170
52 81 136 185
122 150 190
144 Elromlott az AVL tulajdonság!
![Page 8: AVL-fa építése](https://reader036.vdocuments.net/reader036/viewer/2022082408/56812c07550346895d9075d6/html5/thumbnails/8.jpg)
100
74 170
52 81 136 185
122 150 190
144
Meghatározzuk hol romlott el az AVL-tulajdonság:
++
-
+
-
Megcímkézzük a csúcsokat!
A (++,-) szabályt alkalmazzuk!
![Page 9: AVL-fa építése](https://reader036.vdocuments.net/reader036/viewer/2022082408/56812c07550346895d9075d6/html5/thumbnails/9.jpg)
100
74 170
52 81 136 185
122 150 190
144
A (++,-) szabállyal helyreállítjuk az AVL-tulajdonságot
- a 136-os elem kerül a gyökérbe!
- a 136-os bal gyereke lesz a 100-as elem
![Page 10: AVL-fa építése](https://reader036.vdocuments.net/reader036/viewer/2022082408/56812c07550346895d9075d6/html5/thumbnails/10.jpg)
136
170
52 81
185
122 150 190
144
100
74
A (++,-) szabállyal helyreállítjuk az AVL-tulajdonságot
- a 122-es elem a 100-as jobb gyereke lesz
- a 150-es pedig a 170-es bal gyereke
![Page 11: AVL-fa építése](https://reader036.vdocuments.net/reader036/viewer/2022082408/56812c07550346895d9075d6/html5/thumbnails/11.jpg)
A (++,-) szabállyal helyreállítottuk az AVL-tulajdonságot
136
100 170
52 81
74 185150
190144
122
![Page 12: AVL-fa építése](https://reader036.vdocuments.net/reader036/viewer/2022082408/56812c07550346895d9075d6/html5/thumbnails/12.jpg)
Készítette:
Bozó István