Upload
chaney-franks
View
44
Download
0
Embed Size (px)
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 Presentation
Citation preview
AVL-fa építése
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:
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
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
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
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
=>
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!
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!
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
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
A (++,-) szabállyal helyreállítottuk az AVL-tulajdonságot
136
100 170
52 81
74 185150
190144
122
Készítette:
Bozó István