duomenų struktūros
DESCRIPTION
Duomenų struktūros. lekt . dr. A . Slotkien ė. D vejetainis paieškos medis. 9. Nesubalansuotas pavyzdys. 4. 10. 1. 8. 3. 5. 6. Kaip kurti subalansuot ą medį?. AVL medis. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/1.jpg)
Duomenų struktūros
lekt. dr. A. Slotkienė
![Page 2: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/2.jpg)
Dvejetainis paieškos medis
9
1 8
4 10
5
6
3
Nesubalansuotaspavyzdys
Kaip kurti subalansuotą medį?
![Page 3: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/3.jpg)
AVL medis AVL (Adelson-Velski ir Landis) medis yra iš
dalies subalansuotas dvejetainis paieškos medis, kurio bet kurios viršūnės kairiojo ir dešiniojo pomedžių aukščiai skiriasi ne daugiau nei vienetu.
Šis skirtumas vadinamas subalansuotumo faktoriumi: 0 – pomedžiai subalansuoti -1 – kairiojo pomedžio aukštis vienetu didesnis už
dešiniojo 1 – dešiniojo pomedžio aukštis vienetu didesnis už
kairiojo
![Page 4: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/4.jpg)
AVL medisIš dalies subalansuotas dvejetainis
paeiškos medis
Viršūnių charakteristikos: 1) ilgiausios šakos ilgis (lygmuo);
lygmuo skaičiuojamas nuo 0 2)skirtuminė charakteristika
dešiniosios ir kairiosios šakų ilgių skirtumas yra vadinamas faktoriumi
Faktorius turi būti -1, 0, +1. Jei faktorius ±2, medį reikia pertvarkyti.
3
5
6
(2, 2)
![Page 5: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/5.jpg)
AVL medis
AVL-medis – tai dvejetainis paieškos medis, kurio šaknies dešinysis ir kairysis pomedžių aukščiai skiriasi ne daugiau kaip vienetu ir kurio pomedžiai, savo ruožtu, tai pat yra AVL-medžiai.
![Page 6: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/6.jpg)
Charakteristikų skaičiavimo pavyzdys 10 elementas:
lygmuo ->3 faktorius -> 1 (3-2)
nereikia pertvarkyti
14 elementas: lygmuo ->2 faktorius -> 0 (2-2)
nereikia pertvarkyti
10
9
7 12
11
14
15
1613
(3, 1)
(2, 0)
(1, 0)
(0, 0)
(1, 1)
(0, 0) (0, 0)
![Page 7: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/7.jpg)
Elementų įrašymo į AVL medį algoritmas
1. Naują viršūnę prijungiame pagal pagrindinį dvejetainio paieškos medžio formavimo algoritmą;
2. Viršūnių charakteristikas skaičiuojame išrinktajame kelyje tol, kol faktorius intervale [1, -1] ;
3. Jeigu gaunamas neleistinas skirtumas ±2, tai paskutines tris viršūnes pertvarkome ir prijungiame jų pomedžius.
![Page 8: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/8.jpg)
Subalansavomo AVL medyje būdai Viengubas postūmis į dešinę Viengubas postūmis į kairę Dvigubas postūmis į dešinę:
Vieną kartą į kairę Kitą kartą į dešinę
Dvigubas postūmis į kairę: Vieną kartą į dešinę Kitą kartą į kairę
![Page 9: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/9.jpg)
Žymėjimų susitarimai
p – viršunė kurios charakteristika ±2 u – vidurinioji viršūnė (pirmoji p iš
kairės arba dešinės, priklausomai kuo to, į kurią pusę didesnis viršūnių skaičius)
v – vidinė šaka w – išorinė šaka
Jei w ilgis >= v ilgiui
pertvarkom p u w
kitaip pertvarkom p u v
p
u
v w
![Page 10: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/10.jpg)
Trijų viršūnių pervarkymas: Viengubas postūmis į dešinę
Jei w ilgis >= v ilgiui
pertvarkom p u w
kitaip pertvarkom p u v
u
w v
7
3
9
122
6
1
p(2, -2) u
w
v
7
3
9
12
2
61p
w=v =>puw w<v =>puv
![Page 11: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/11.jpg)
Viengubas postūmis į dešinę
50
35
40 55
32
[2, -2]
50
32
35 55
40
[2, -2]p
u
w
w>v =>puw
![Page 12: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/12.jpg)
Trijų viršūnių pervarkymas:Viengubas postūmis į kairę
Jei w ilgis >= v ilgiui
tai pertvarkom p u w
kitaip pertvarkom p u v
![Page 13: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/13.jpg)
Viengubas postūmis į dešinę
51 73
9563
78
31
51 73
9563
78
31
51 78
95
63
73
2
1
1
0
1
Postūmis į dešinę
Įterpiame 31 Skaičiuojame faktorius Balansuojame puw
![Page 14: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/14.jpg)
Viengubas postūmis į kairę
10583
9563
78
10583
9563
78
100
2
1
-1 10578
95
63 83 100
Postūmis į kairę
Įterpiame 100 Skaičiuojame faktorius Balansuojame puw
![Page 15: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/15.jpg)
Trijų viršūnių pervarkymas: Dvigubas postūmis į dešinę
Jei v ilgis > w ilgiui
tai pertvarkom p u v
kitaip pertvarkom p u w
Dvigubas postūmis į dešinę:
1. Vieną kartą į kairę
2. Kitą kartą į dešinę
1. Postūmis į kairę
![Page 16: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/16.jpg)
Dvigubas postūmis į dešinę
Jei w ilgis >= v ilgiuitai pertvarkom p u w kitaip pertvarkom p u v
2. Postūmis į dešinę
![Page 17: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/17.jpg)
Dvigubas postūmis į dešinę
50
32
35 55
40
37
40
32
35 50
37 55
50
35
40 55
32 37
Postūmis į kairę SubalansuotasPostūmis į dešinę
puv puw
![Page 18: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/18.jpg)
Dvigubas postūmis į dešinę
6455 7336
51 70 90
9563
78
6555
64
36
51
63 78
90
95
70
73
6555
64
36
51
63 73 90
9570
78
65
2
-1
1
-1 0
0
0
-1
1-1
0
0
![Page 19: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/19.jpg)
Dvigubas postūmis į dešinę
78
63 95
90
55 73
70
65
51
36
75
78
70 95
90
65
55
73
36
63
51 75
70
63 78
73
55
9565
90
51
36 75
2
-1
-1
-1
1
![Page 20: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/20.jpg)
Trijų viršūnių pervarkymas:Dvigubas postūmis į kairę
6
15
8
122
5
10
9
7
Dvigubas postūmis į kairę:
1. Vieną kartą į dešinę
2. Kitą kartą į kairę
p
u
v
3;2
puv
![Page 21: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/21.jpg)
Trijų viršūnių pervarkymas:Dvigubas postūmis į kairę
u
w
6
12
8
102
5
9
p(3, 2)
6
159
122
5 10
15
87
7
puw
Postūmis į kairęPostūmis į dešinę
![Page 22: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/22.jpg)
Dvigubas postūmis į kairę
51
63
78
95
85
80
100
83 105
79 200
51
63
78
83
200
80
100
79 95
85 105
63
78
83
95
51 80 100
85 10579
200
-2
1
1
-1
Postūmis į kairę SubalansuotasPostūmis į dešinę
puv puw
![Page 23: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/23.jpg)
Skaičiaus 4 pašalinimas iš AVL:
1. Į 4 vietą atkeliam (iš dešinės) 6
2. p viršūnės faktorius -2 – reikia pertvarkyti
tris viršūnes - p u w ar p u v ?
7
3
9
122
4
1
u
w v
7
3
9
122
6
1
p(2, -2)
6
![Page 24: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/24.jpg)
Pertvarkymo suvestinė
p
u
v w
p
u
v w
![Page 25: Duomenų struktūros](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56812e3e550346895d93be5a/html5/thumbnails/25.jpg)
Praktika http://www.engin.umd.umich.edu/CIS/course.des/cis350/
treetool/ http://www.site.uottawa.ca/~stan/csi2514/applets/avl/BT.ht
ml http://www.cs.jhu.edu/~goodrich/dsa/trees/avltree.html