Lataa esitys
Esittely latautuu. Ole hyvä ja odota
JulkaistuSanna Manninen Muutettu yli 9 vuotta sitten
1
Binäärinen hakupuu Jokaisessa solmussa on yksikäsitteinen avain
vasemmat jälkeläiset < nykyinen solmu < oikeat jälkeläiset 9 6 11 5 7 10
2
Binäärisen hakupuun läpikäynti sisäjärjestyksessä (inorder)
Järjestys: vasen alipuu - juuri - oikea alipuu 9 6 11 void sisajarjestys(puuos alkio){ if(alkio){ sisajarjestys(alkio->vasen); tulosta_alkio(alkio); sisajarjestys(alkio->oikea); } 5 7 10
3
Maksimi- ja minimikeko
Täydellinen binääripuu jonka jokaisen solmun avain on suurempi (pienempi) tai yhtäsuuri kuin lasten avain Suurimman (pienimmän) alkion etsiminen on nopeaa
4
Keon toteutus Juuri = 1 i:n vasen lapsi = 2*i i:n oikea lapsi = 2*i+1
i:n vanhempi = i/2 x[1] x[2] X[3] x[4] x[5] X[6]
5
Keko – nosta (siftup) funktio
12 20 15 29 23 17 22 35 40 26 51 19 13
6
Keko – nosta (siftup) funktio
12 20 15 29 23 13 22 35 40 26 51 19 17
7
Keko – nosta (siftup) funktio
12 20 13 29 23 15 22 35 40 26 51 19 17
8
Keko – nosta (siftup) funktio
12 20 13 29 23 15 22 35 40 26 51 19 17
9
Keko – poista juuresta 12 20 13 29 23 15 22 35 40 26 51 19 17
10
Keko – poista juuresta 20 13 29 23 15 22 35 40 26 51 19 17
11
Keko – siftdown 17 20 13 29 23 15 22 35 40 26 51 19
12
Keko – siftdown 13 20 17 29 23 15 22 35 40 26 51 19
13
Keko – siftdown 13 20 15 29 23 17 22 35 40 26 51 19
14
Keko – siftdown 13 20 15 29 23 17 22 35 40 26 51 19
15
Lapsi vasemmalle, sisarukset oikealle
16
Joukot Joukot voidaan esittää metsien avulla
Metsä on ei-tyhjä joukko erillisiä puita
17
Joukot int etsi_joukko(int alkio) {
for(; vanhempi[alkio] >= 0; alkio = vanhempi[alkio]) { ; /* tyhjä lause */ } return alkio; } void unioni(int alkio1, int alkio2) { vanhempi[alkio1] = alkio2; /* sijoit. joukko toisen alipuuksi */ }
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.