1 / 25

Duomenų struktūros

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.

Download Presentation

Duomenų struktūros

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Duomenų struktūros lekt. dr. A. Slotkienė

  2. Dvejetainis paieškos medis 9 Nesubalansuotas pavyzdys 4 10 1 8 3 5 6 Kaip kurti subalansuotą medį?

  3. 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

  4. AVL medis Iš 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. (2, 2) 3 5 6

  5. 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.

  6. Charakteristikų skaičiavimo pavyzdys • 10 elementas: • lygmuo ->3 • faktorius -> 1 (3-2) nereikia pertvarkyti • 14 elementas: • lygmuo ->2 • faktorius -> 0 (2-2) nereikia pertvarkyti

  7. Elementųįrašymo į AVL medįalgoritmas • Naują viršūnę prijungiame pagal pagrindinį dvejetainio paieškos medžio formavimo algoritmą; • Viršūnių charakteristikas skaičiuojame išrinktajame kelyje tol, kol faktorius intervale [1, -1] ; • Jeigu gaunamas neleistinas skirtumas ±2,tai paskutines tris viršūnes pertvarkome ir prijungiame jų pomedžius.

  8. Subalansavomo AVL medyjebū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ę

  9. Ž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 pertvarkomp u w kitaippertvarkom p u v p u v w

  10. 7 (2, -2) p 6 9 u 2 12 w v 1 3 Trijų viršūnių pervarkymas: Viengubas postūmis į dešinę Jei w ilgis >= v ilgiui pertvarkomp u w kitaippertvarkom p u v 7 u 2 9 w p 1 6 12 v 3 w=v =>puw w<v =>puv

  11. Viengubas postūmis į dešinę p u w w>v =>puw

  12. Trijų viršūnių pervarkymas:Viengubas postūmis į kairę Jei w ilgis >= v ilgiui tai pertvarkom p u w kitaippertvarkomp u v

  13. 2 0 78 78 63 1 1 63 95 63 95 51 78 1 Postūmis į dešinę 51 73 51 73 73 95 31 31 Viengubas postūmis į dešinę Įterpiame 31 Skaičiuojame faktorius Balansuojame puw

  14. 2 78 78 1 95 63 95 63 95 78 105 -1 105 83 105 83 63 83 100 100 Viengubas postūmis į kairę Įterpiame 100 Skaičiuojame faktorius Balansuojame puw Postūmis į kairę

  15. Trijų viršūnių pervarkymas: Dvigubas postūmis į dešinę Jei v ilgis > w ilgiui tai pertvarkom p u v kitaippertvarkom p u w • Dvigubas postūmis į dešinę: • Vieną kartą į kairę • Kitą kartą į dešinę 1. Postūmis į kairę

  16. Dvigubas postūmis į dešinę 2. Postūmis į dešinę Jei w ilgis >= v ilgiui tai pertvarkom p u w kitaippertvarkom p u v

  17. Dvigubas postūmis į dešinę Postūmis į kairę Postūmis į dešinę Subalansuotas puw puv

  18. 78 78 70 70 95 63 95 63 78 90 63 73 90 73 95 51 70 51 64 51 64 36 90 55 65 36 55 64 73 65 36 55 65 Dvigubas postūmis į dešinę 2 0 -1 0 -1 1 -1 1 -1 0 0 0

  19. 70 78 78 63 78 63 95 70 95 51 65 73 95 51 70 90 63 73 90 36 55 75 90 36 55 65 73 75 51 65 75 36 55 Dvigubas postūmis į dešinę 2 -1 1 -1 -1

  20. Trijų viršūnių pervarkymas:Dvigubas postūmis į kairę • Dvigubas postūmis į kairę: • Vieną kartą į dešinę • Kitą kartą į kairę 6 3;2 5 8 p u 7 2 12 v 10 15 9 puv

  21. Trijų viršūnių pervarkymas:Dvigubas postūmis į kairę Postūmis į dešinę Postūmis į kairę 6 6 p (3, 2) 5 8 5 10 u 7 2 8 12 2 10 9 7 9 15 12 w 15 puw

  22. 83 78 78 78 95 63 95 63 83 105 63 85 79 95 51 79 105 51 83 100 200 51 80 80 85 105 79 85 100 200 100 200 80 Dvigubas postūmis į kairę Subalansuotas Postūmis į dešinę Postūmis į kairę -2 1 1 -1 puv puw

  23. 7 (2, -2) p 6 9 u 2 12 w v 1 3 Skaičiaus 4 pašalinimas iš AVL: 7 4 9 2 6 12 1 3 1.Į 4vietą 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?

  24. Pertvarkymo suvestinė p p u u v v w w

  25. Praktika • http://www.engin.umd.umich.edu/CIS/course.des/cis350/treetool/ • http://www.site.uottawa.ca/~stan/csi2514/applets/avl/BT.html • http://www.cs.jhu.edu/~goodrich/dsa/trees/avltree.html

More Related