12
AVL-fa építése

AVL-fa építése

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

Page 1: AVL-fa építése

AVL-fa építése

Page 2: 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:

Page 3: AVL-fa építése

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

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

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

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

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

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

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

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

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

Készítette:

Bozó István