ALGORITMIISTRUKTUREPODATAKA Predavanje21/12/2009 9.Binarnastablapretraivanja
http://www.riteh.hr/zav_katd_sluz/zr/nastava/asp
Prolapredavanja
Ponavljanje:pokazivaiuCu Analizaalgoritama Osnovnitipovipodataka
ADT:lista,stog,red
Rekurzijaiiteracija Sortiranjepodataka Stabla
Stabla zatostabla? definicija terminologija primjeri Binarnastabla definicija svojstva primjer:aritmetikiizrazi obilazakbinarnihstabala Implementacija pokazivaima poljem Gomila(Heap) Heapsort Prioritetnired
Sadrajpredavanja
Binarnastablapretraivanja Balansiranabinarnastabla AVLstabla
Binarnastablapretraivanja (binarysearchtrees)
Ponavljanje
Nekeoperacijelinearnihstrukturapodatakakaopoljeili vezanalistanisuuinkovite.Koje?
A B zadnji C
A
B
C
Vezanalistamaxlength
Polje
Binarnastablapretraivanja(BST)definicija
Binarnostablopretraivanjajebinarnostabloukojemu:
svakivorimaklju kljusvakogvorajeveiodkljuevavorovalijevog podstablaimanjiodkljuevavorovadesnogpodstabla (tzv.svojstvobinarnogstablapretraivanja)48 25 17 5 21 32 28
89 65 96
Binarnastablapretraivanja(BST)primjeriH B G E 12 8 13 9
L I M
Da
Ne
4 3
11 10
Binarnastablapretraivanja(BST)
BSTubrzavaoperacijupretraivanja.Zato? KakotraimoelementpokljuuuBST? UkojemsluajupretraivanjeBSTnijeuinkovitijeod pretraivanjaliste?48 25 17 5 21 32 28
89 65 96
Binarnastablapretraivanja(BST)
Dvabinarnastablapretraivanjasaistimskupom elemenata:17 89 32 96 48 32 25 89 96
48 25 17
ProsjenadubinavorajelogN,anajgorajeN1
Binarnastablapretraivanjaoperacije
empty():vraatrueakoBSTnemavorova findkey(keyk):traivorsakljuemk.
akojestablopraznovraafalse akogapronaepostavljacurrentnavorivraatrue akoganepronaepostavljacurrentnavorgdjebisenovi elementmoraododatikaodijeteivraafalse stablonesmijebitipuno akovepostojikljukvraafalse usuprotnomubacujenovielementipostavljacurrent
insert(keyk,typeval):ubacujenovielement
retrieve():akostablonijeprazno,vraapodatkevorana kojipokazujecurrent delete(keyk):brievorsakljuemk
akostablonijepraznopostavljacurrentnakorijen
findkey
pretraivanjepokljuuprimjer:23
Tleft
Tright
akotraimoklju23,ondasmogotovi akotraimoklju23ondatraimodesnopodstablo
findkey
Primjer:traimo28
usporedi28i48(korijen),idilijevo; usporedi28i25,ididesno; usporedi28i32,idilijevo; usporedi28i28,bingo!48 25 17 5 21 32 28 43
89 65 96
najmanjiinajveielement
findmin:vraanajmanjielementustablu
poniodkorijenaiidilijevosvedokimadjece poniodkorijenaiididesnosvedokimadjece
findmax:vraanajveielementustablu
48 25NAJMANJI ELEMENT
89 32 28 65 96NAJVEI ELEMENT
17 21
Kojajesloenostoperacijafindminifindmax?
InorderobilaenjeBSTstabla
inorderobilaenjestablaispieelementesortiranepo kljuu48 25 17 21 32 28 65 89 96
Inorder:17,21,25,28,32,48,65,89,96
insert
poneistokaoifindKey
sputasenizstablotraeielementsakljuemk akoganepronaeondaubacinovielementnazadnje mjestogdjejestao48 25 17 21 32 28 43 65 89 96
Primjer:ubaci43
sloenostoperacijejeistakaoizafindkey,findmin, findmax: O(visinastabla)
delete
operacijadeletejenajsloenija
moraseznatitouinitisadjecompobrisanogvora vorsa0djecesejednostavnopobrie kodvorasa1djetetom,dijetesepromoviranapoziciju pobrisanogvora
brisanjevorasa0ili1djetetomjelako:
kadavorima2djecemorasepazitidanakonbrisanja stablozadrisvojstvobinarnogstablapretraivanja
nemoesejednostavnopromoviratijednodijete
vorkojisebriesezamijenisasvojimsljednikom (successor)
natajnainsezadravasvojstvobinarnogstabla pretraivanja.Zato?
deleteprimjeri
Pobrii32:48 25 17 21 32 28 17 21 25 32 28 48
deleteprimjeri
Pobrii25:
zamijenigasanajmanjimelementomdesnogpodstabla (sljednik)tepobriisljednika
sljednikilinemadjece,iliimasamodesnodijete.Usuprotnombi dijetebilomanjeibilobiizabranokaosljednikod25 48 25 28 32 28 29 17 21 28 29
48
17 21
32
Balansiranastabla
Balansiranabinarnastabla
UnajgoremsluajuvisinabinarnogstablapretraivanjajeN1
toznaidajevrijemepotrebnozaizvravanjeveineoperacija moebitiO(N)unajgoremsluaju
Idealnobibiloimatitoniestablo Moemoodravativisinustablatakodasloenostoperacija ostajeO(logN)? Da,takvastablasezovubalansiranabinarnastabla pretraivanja Primjeribalansiranihbinarnihstabala:
AVLstabla Crvenocrnastabla
Balansiranjebinarnihstabala
Prvipokuaj:
zahtjevatidalijevoidesnokorijenovopodstabloimajuistu visinu48 25 17 28 32 21 29
moeibolje
Balansiranjebinarnihstabala
Drugipokuaj:
zahtjevatidasvakivorimalijevoidesnopodstabloistevisine
48 25 17 29 32 28 21
previerestriktivno
Balansiranjebinarnihstabala
Treipokuaj:
zahtjevatidasevisinalijevogidesnogpodstablasvakogvora razlikujuzanajvie148 25 32 21 25 17 48 32 28 21 17 da da
48 25 17 17 ne 32 28
17
AVLstabla
AVLstablo
AVLstablojebinarnostablopretraivanjaukojemu:
sevisinalijevogidesnogpodstablasvakogvorarazlikujuza najvie1 akoubacivanjeilibrisanjevoraporemetiravnoteustabla, rebalansiranjesemoeodmahizvriti
akoseporemetiravnoteadijelastabla,rebalansiranjesemoe vritilokalno
rebalansiranjesepostie"rotacijama"stablaY X X
C BPrijerotacije
Y
A
BPoslijerotacije
C
A
Ubacivanje(insert)
Problem:
pronaivorPkojemuseravnotea(balancefactor)primijenila nakonubacivanjanovogvora
TraenjevoraP:
penjisepremakorijenuodpozicijenovogvoraiprovjeravaj ravnoteu(aurirasebalancefactor)odvorovanaputu prvivorkojemubalancefactorpostane+/2jekorijen podstablakojemutrebaponovnouspostavitiravnoteu
Ubacivanjevora(insert)
sluaj1:vorseubacujeupodstabloA AVLsvojstvovienevrijediuvorux
rjeenje:jednostrukarotacijasalijevimdjetetom
Ubacivanjevora(insert)
sluaj2:vorseubacujeupodstabloC AVLsvojstvovienevrijediuvorux
rjeenje:jednostrukarotacijasadesnimdjetetom
Ubacivanjevora(insert)primjer7 x 9 6 2 5 3 2
7 5 3
Ubaci23
5 y 6B A
9C
rotirajxiy7
6
9
Ubacivanjevora(insert)
sluaj1:vorseubacujeupodstabloB1iliB2 AVLsvojstvovienevrijediuvorux
rjeenje:dvostrukarotacijasalijevimdjetetom
Ubacivanjevora(insert)
sluaj2:vorseubacujeupodstabloB1iliB2 AVLsvojstvovienevrijediuvorux
rjeenje:dvostrukarotacijasadesnimdjetetom
Ubacivanjevora(insert)primjer8 x 9 7
8 5 3
Ubaci63A
5 y 7 6B z
9C
7 5 3
rotirajx,yiz8
6
9
Ubacivanjevora(insert)
Kompletanprimjerstvaranja AVLstablanaploi:
3,2,1,4,5,6,7,16,15,14
AVLstablozakljuak
AVLstablaodravajubinarnostablopretraivanjau ravnoteiprilikomnjegovogstvaranjakadasevorovi ubacuju Postojiialternativanpristup(neemogavidjetiuovim predavanjima)ukojemusestablarebalansirajuneprilikom ubacivanjaelemenataveprilikompristupanjaistim(splay trees).
Top Related