AVL-fa építése

Preview:

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

Recommended