1 / 24

Splay tree

Splay tree . 1.Seminarska naloga. Splay tree. Lomljena drevesa so dvojiška iskalna drevesa, ki se spremenijo (lomijo) ob vsakem posegu v drevo. To je pri iskanju elementa v drevesu, vstavljanju elementa v drevo in pri brisanju elementa iz drevesa.

Download Presentation

Splay tree

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. Splay tree 1.Seminarska naloga

  2. Splay tree • Lomljena drevesa so dvojiška iskalna drevesa, ki se spremenijo (lomijo) ob vsakem posegu v drevo. • To je pri iskanju elementa v drevesu, vstavljanju elementa v drevo in pri brisanju elementa iz drevesa. • Lomljenje drevesa trenutni element premakne proti korenu drevesa oziroma v koren drevesa. • Za lomljenje drevesa uporabljamo rotacije.

  3. Rotacije • Lomljenjedrevesapremakne z rotacijodani element v korendrevesa. Rotacija je postopek, kizamenjavlogosinov in očeta v iskalnemdvojiškemdrevesu. Preoblikovanodrevo je ravnotakoiskalnodvojiškodrevo. • Odvisnoodprimerauporabljamoenojne in dvojnerotacije. Dvojnarotacija je kombinacijadvehenojnih. • Rotacije so lahkolevealidesne. • Pri lomljenju lahko nastopijo štirje primeri:

  4. 1.Kadar je iskani element X v korenu drevesa, rotacija ni potrebna.

  5. 2.Kadar je očevozlišča z elementomkorendrevesa, uporabimoenojnorotacijo. -Do desnerotacije pride, če je iskani element X levi sin.

  6. -Do leverotacije pride, če je iskani element X desni sin. Levarotacija je zrcalnadesni.

  7. 3.Kadar sta vozlišče z obravnavanim elementom in oče oba leva ali oba desna sinova svojih očetov uporabimo dvojno rotacijo. -Desno-desno rotacijo uporabimo, če sta oba leva sinova.

  8. -Levo-levo rotacijo uporabimo, če sta oba sinova desna. Levo-leva rotacija je zrcalna slika desno desne rotacije.

  9. 4. Kadar je vozlišče z obravnavanim elementom na nasprotni strani očeta, kot oče glede na svojega očeta uporabimodvojnorotacijo. Če je vozlišče z obravnavanimelementomdesni sin, njegovoče pa levi sin, je to levo-desnarotacija.

  10. Če je vozlišče z obravnavanimelementomlevi sin, njegovoče pa desni sin, uporabimodesno-levorotacijo. Ta je zrcalnaslikalevo-desnerotacije. Rotacije in lomljenjedrevesaso samopomožnemetode, kijihpotrebujemouspešnoizpeljavopravihoperacij, ki so vstavljanje elementa, iskanje elementa v drevesu in brisanje elementa iz drevesa.

  11. Vstavljene elementa v drevo • Pri vstavljanju elementa v drevo ločimo tri primere: • 1)Drevo je prazno – element vstavimo v koren drevesa in postopek je končan • 2)Če drevo ni prazno in v drevesu ni enakega elementa, kot ga vstavljamo, pridemo do lista drevesa. Takrat naredimo novo vozlišče in ga povežemo v drevo. Nato drevo lomimo in novo vozlišče z elementom, ki ga vstavljamo premaknemo v koren drevesa.

  12. 3)Element, kigavstavljamo, je enakelementu v drevesu. Zatopostopekvstavljanjakončamo. Sledilomljenjedrevesa s katerimvozlišče z elementom, ki je enakelementu, kismogaželelivstavitipremaknemo v korendrevesa.

  13. Zgled: V praznolomljenodrevozaporednovstavimoelemente: 16, 2, 5, 11, 30, 17, 11 in 22. Vstavimo 16 in nato 2. Vozlišče z elementom 2 moramovstaviti v levopoddrevo, ker je 2 < 16. Nato uporabimo desno rotacijo.

  14. Zaporedno vstavljamo elemente 5, 11, 30, 17, 11 v iskalno dvojiško drevo in drevo lomimo. Dobimo :

  15. Vstavimošezadnji element 22. Ker je 22>11 vstavimo v desno poddrevo. Ker je 22>16 vstavimo v desno poddrevo. Tretja primerjava pove, da gremo spet v desno 22>17, nato pa gremo v levo, ker je 22<30. Zarotiramo najprej v desno in nato 3x v levo

  16. Iskanje elementa v drevesu • Pri iskanju elementa se sprehodimo po drevesu in pri tem v vsakem vozlišču primerjamo vrednost iskanega elementa z vrednostjo elementa v vozlišču drevesa. • Pri iskanju elementa v drevesu ločimo tri primere: • 1.Drevo je prazno • 2.V drevesu smo našli vozlišče z iskanim elementom. Z zaporedjem rotacij premaknemo najdeno • vozlišče v koren drevesa. • 3.Iskanega elementa ni v drevesu. Z zaporedjem rotacij v koren premaknemo zadnje vozlišče na poti iskanja.

  17. Brisanjeelementaizdrevesa • Pribrisanjuelementaizdrevesa, najprejpoiščemovozlišče z vrednostjo, kijoželimobrisatiizdrevesa. Natodrevolomimo - z zaporedjemrotacij, vozlišče s tem elementompostanekorendrevesa. Natota element podoločenihpostopkihodstranimoizdrevesa.

  18. Zgled: Danoimamodvojiškoiskalnodrevo. Izdrevesaizbrišimo element 16.

  19. Element 16 najprejpoiščemo. Ker je večjiodvrednosti 5 v korenudrevesa, nadaljujemo z iskanjem v desnempoddrevesu. Tuimamo v vozliščuvrednost 7. Ker je element 16 večjiodvrednosti 7, nadaljujemoiskanje v desnempoddrevesu. Tunajdemovrednost 16 in iskanje je končano. Sledilomljenjedrevesa, prikateremvozlišče z iskanovrednostjopremaknemo v korendrevesa.

  20. Vozlišče z iskanovrednostjo je desni sin, ravnotakonjegovoče, zatouporabimolevo-levorotacijo.

  21. VIRI IN LITERATURA • S. Butalič, Lomljeno drevo, Diplomska naloga, Fakulteta za matematiko in fiziko, 2006, Ljubljana • B. Gril, Lomljena drevesa, Seminarska naloga, Fakulteta za matematiko in fiziko, 2009, Jesenice • http://wiki.fmf.uni-lj.si/wiki/Lomljeno_drevo • http://lcm.csa.iisc.ernet.in/dsa/node93.html • http://en.wikipedia.org/wiki/Splay_tree

More Related