Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Binarnastablapretraivanja
http://www.riteh.hr/zav_katd_sluz/zr/nastava/asp
Prolapredavanja
ADT:lista,stog,red
Stabla zatostabla? definicija terminologija primjeri Binarnastabla definicija svojstva primjer:aritmetikiizrazi obilazakbinarnihstabala Implementacija pokazivaima poljem Gomila(Heap) Heapsort Prioritetnired
Sadrajpredavanja
Binarnastablapretraivanja (binarysearchtrees)
Ponavljanje
Nekeoperacijelinearnihstrukturapodatakakaopoljeili vezanalistanisuuinkovite.Koje?
A B zadnji C
Vezanalista
maxlength
Polje
Binarnastablapretraivanja(BST)
definicija
Binarnostablopretraivanjajebinarnostabloukojemu:
89 65 96
Binarnastablapretraivanja(BST)
primjeri
H B G E 12 8 13 9
L I M
Da
Ne
4 3
11 10
Binarnastablapretraivanja(BST)
89 65 96
Binarnastablapretraivanja(BST)
Dvabinarnastablapretraivanjasaistimskupom elemenata:
17 89 32 96 48 32 25 89 96
48 25 17
ProsjenadubinavorajelogN,anajgorajeN1
Binarnastablapretraivanja
operacije
empty():vraatrueakoBSTnemavorova findkey(keyk):traivorsakljuemk.
insert(keyk,typeval):ubacujenovielement
akostablonijepraznopostavljacurrentnakorijen
findkey
pretraivanjepokljuuprimjer:
23
Tleft
Tright
findkey
Primjer:traimo28
89 65 96
najmanjiinajveielement
findmin:vraanajmanjielementustablu
poniodkorijenaiidilijevosvedokimadjece poniodkorijenaiididesnosvedokimadjece
findmax:vraanajveielementustablu
48 25
NAJMANJI ELEMENT
89 32 28 65 96
NAJVEI ELEMENT
17 21
Kojajesloenostoperacijafindminifindmax?
InorderobilaenjeBSTstabla
inorderobilaenjestablaispieelementesortiranepo kljuu
48 25 17 21 32 28 65 89 96
Inorder:17,21,25,28,32,48,65,89,96
insert
poneistokaoifindKey
Primjer:ubaci43
delete
operacijadeletejenajsloenija
brisanjevorasa0ili1djetetomjelako:
kadavorima2djecemorasepazitidanakonbrisanja stablozadrisvojstvobinarnogstablapretraivanja
nemoesejednostavnopromoviratijednodijete
vorkojisebriesezamijenisasvojimsljednikom (successor)
natajnainsezadravasvojstvobinarnogstabla pretraivanja.Zato?
delete
primjeri
Pobrii32:
48 25 17 21 32 28 17 21 25 32 28 48
delete
primjeri
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
AVLstabla Crvenocrnastabla
Balansiranjebinarnihstabala
Prvipokuaj:
zahtjevatidalijevoidesnokorijenovopodstabloimajuistu visinu
48 25 17 28 32 21 29
moeibolje
Balansiranjebinarnihstabala
Drugipokuaj:
zahtjevatidasvakivorimalijevoidesnopodstabloistevisine
48 25 17 29 32 28 21
previerestriktivno
Balansiranjebinarnihstabala
Treipokuaj:
zahtjevatidasevisinalijevogidesnogpodstablasvakogvora razlikujuzanajvie1
48 25 32 21 25 17 48 32 28 21 17 da da
48 25 17 17 ne 32 28
17
AVLstabla
AVLstablo
AVLstablojebinarnostablopretraivanjaukojemu:
akoseporemetiravnoteadijelastabla,rebalansiranjesemoe vritilokalno
rebalansiranjesepostie"rotacijama"stabla
Y X X
C B
Prijerotacije
B
Poslijerotacije
Ubacivanje(insert)
Problem:
pronaivorPkojemuseravnotea(balancefactor)primijenila nakonubacivanjanovogvora
TraenjevoraP:
Ubacivanjevora(insert)
sluaj1:vorseubacujeupodstabloA AVLsvojstvovienevrijediuvorux
rjeenje:jednostrukarotacijasalijevimdjetetom
Ubacivanjevora(insert)
sluaj2:vorseubacujeupodstabloC AVLsvojstvovienevrijediuvorux
rjeenje:jednostrukarotacijasadesnimdjetetom
Ubacivanjevora(insert)
primjer
7 x 9 6 2 5 3 2
7 5 3
Ubaci2
3
5 y 6
B A
9
C
rotirajxiy
7
Ubacivanjevora(insert)
sluaj1:vorseubacujeupodstabloB1iliB2 AVLsvojstvovienevrijediuvorux
rjeenje:dvostrukarotacijasalijevimdjetetom
Ubacivanjevora(insert)
sluaj2:vorseubacujeupodstabloB1iliB2 AVLsvojstvovienevrijediuvorux
rjeenje:dvostrukarotacijasadesnimdjetetom
Ubacivanjevora(insert)
primjer
8 x 9 7
8 5 3
Ubaci6
3
A
5 y 7 6
B z
9
C
7 5 3
rotirajx,yiz
8
Ubacivanjevora(insert)
Kompletanprimjerstvaranja AVLstablanaploi:
3,2,1,4,5,6,7,16,15,14
AVLstablo
zakljuak