puun määritelmä

31
Puun määritelmä Puun määritelmä Puu on yhden tai useamman kytketyn solmun muodostama hierarkinen joukko Lehtisolmuista juurisolmuun on yksikäsitteinen polku Käytetään haku, lajittelu ja grafiikka algoritmeissa juurisolmu lehtisolmuja sisäsolmuja

Upload: teddy

Post on 08-Jan-2016

69 views

Category:

Documents


2 download

DESCRIPTION

Puun määritelmä. Puu on yhden tai useamman kytketyn solmun muodostama hierarkinen joukko Lehtisolmuista juurisolmuun on yksikäsitteinen polku Käytetään haku, lajittelu ja grafiikka algoritmeissa. juurisolmu. sisäsolmuja. lehtisolmuja. Puut. Puu koostuu solmuista - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Puun määritelmä

Puun määritelmäPuun määritelmä Puu on yhden tai useamman kytketyn solmun muodostama hierarkinen

joukko Lehtisolmuista juurisolmuun on yksikäsitteinen polku Käytetään haku, lajittelu ja grafiikka algoritmeissa

juurisolmu

lehtisolmuja

sisäsolmuja

Page 2: Puun määritelmä

PuutPuut

Puu koostuu solmuistaSolmut koostuvat tietoalkiosta ja linkeistä

solmulinkki

tietoalkio

Page 3: Puun määritelmä

Puut – solmun astePuut – solmun aste

Solmun aste (out-degree) tarkoittaa alipuiden lukumäärää

Puun aste on maksimi solmujen asteista

solmun aste = 2solmun aste = 3

Page 4: Puun määritelmä

Puut – vanhempisuhdePuut – vanhempisuhde

Solmu jolla on alipuita on alipuiden juurisolmujen vanhempi ja alipuiden juurisolmut ovat lapsia

B on E:n ja F:n vanhempi A:lla ei ole vanhempia

Page 5: Puun määritelmä

Puut – lapsisuhdePuut – lapsisuhde

Solmu jolla on vanhempi on sen lapsi

B, C ja D ovat A:n lapsia

F:llä ei ole lapsia

Page 6: Puun määritelmä

Puut – sisaruussuhdePuut – sisaruussuhde

Saman vanhemman lapset ovat sisaruksia

B, C ja D ovat sisaruksia keskenään

A:lla ei ole sisaruksia

Page 7: Puun määritelmä

Puut – esivanhemmatPuut – esivanhemmat

Kaikki solmut juurisolmusta solmun X vanhempaan ovat X:n esivanhempia

A, B ja E ovat L:n esivanhempia

A:lla ei ole esivanhempia

Page 8: Puun määritelmä

Puut – jälkeläisetPuut – jälkeläiset

Kaikki alipuun jonka juurisolmuna X on ovat X:n jälkeläisiä

A: jälkeläiset ovat: B,C,D,E,F,G,H,I,J,K,L,M

F:llä ei ole jälkeläisiä

B:n jälkeläiset ovat:E, F, K ja L

Page 9: Puun määritelmä

Puut – solmun tasoPuut – solmun taso

Juurisolmu on tasolla yksiMuiden taso on vanhemman taso + 1

1

2

3

4

taso

Page 10: Puun määritelmä

BinääripuuBinääripuu

Solmun lapsien maksimimäärä on kaksi

12

453

7 31 55

Page 11: Puun määritelmä

Binääripuu toteutettuna linkeillä Binääripuu toteutettuna linkeillä

Page 12: Puun määritelmä

Binääripuu toteutettuna Binääripuu toteutettuna taulukon avullataulukon avulla

Page 13: Puun määritelmä

Täydellinen (perfect) Täydellinen (perfect) binääripuubinääripuu

Jokaisella solmulla on 0 tai 2 lastaKaikki lehtisolmut ovat samalla tasolla

A

CB

E F GD

Page 14: Puun määritelmä

Täysi binääripuuTäysi binääripuu

Jokaisella solmulla on 0 tai 2 lasta

A

CB

ED

Page 15: Puun määritelmä

Täydellinen (complete) Täydellinen (complete) binääripuubinääripuu

Kaikki tasot ovat täynnä alinta tasoa lukuunottamatta Alimmalla tasolla solmut ovat vasemmassa

reunassa

A

CB

E FD

Complete Tree

Page 16: Puun määritelmä

Täydellinen (complete) Täydellinen (complete) binääripuubinääripuu

Kaikki tasot ovat täynnä alinta tasoa lukuunottamatta Alimmalla tasolla solmut ovat vasemmassa

reunassa

A

CB

E F G

Not a Complete Tree

Page 17: Puun määritelmä

Solmujen lukumäärä Solmujen lukumäärä binääripuussa – huonoin tapausbinääripuussa – huonoin tapausSolmujen lukumäärä on NHuonoimmassa tapauksessa (lista) puun

syvyys on NA

C

B

Page 18: Puun määritelmä

Solmujen lukumäärä Solmujen lukumäärä binääripuussa – paras tapaus binääripuussa – paras tapaus

Parhaassa tapauksessa puu on täydellinen (perfect)

A

CB

E F GD

Page 19: Puun määritelmä

Solmujen lukumäärä Solmujen lukumäärä täydellisessä binääripuussatäydellisessä binääripuussa

Tasolla 1 on yksi solmuTasolla 2 on kaksi solmuaTasolla 3 on neljä solmua…Tasolla n on 2n-1 solmua

Page 20: Puun määritelmä

Solmujen lukumäärä Solmujen lukumäärä täydellisessä binääripuussatäydellisessä binääripuussa

Tasolla n on 2n-1 solmuan:llä tasolla on yhteensä N=1+21+22+…+2n-2+2n-1=2n-1 solmuaTällöin täydellisen (perfect) binääripuun

syvyys n=log2(N+1)

Täysi ja täydellinen binääripuu minimoivat puun syvyyden, joka nopeuttaa operaatioita (lisää, etsi, tuhoa).

Page 21: Puun määritelmä

Binäärinen hakupuuBinäärinen hakupuu

Jokaisessa solmussa on yksikäsitteinen avainvasemmat jälkeläiset < nykyinen solmu <

oikeat jälkeläiset 9

116

7 105

Page 22: Puun määritelmä

Avaimen poisto binäärisestä Avaimen poisto binäärisestä hakupuustahakupuusta

Poistetaan avain 60

Page 23: Puun määritelmä

Puussa kulkeminenPuussa kulkeminen

Läpikäyntijärjestyksiä: - esijärjestys (preorder) - sisäjärjestys (inorder) - jälkijärjestys (postorder) - tasojärjestys (level order)

Page 24: Puun määritelmä

EEsijärjestys (preorder)sijärjestys (preorder)

Järjestys: juuri – vasen alipuu - oikea alipuuA B D E C F

A

CB

E FDvoid esijarjestys(puuos alkio){ if(alkio){ tulosta_alkio(alkio); esijarjestys(alkio->vasen); esijarjestys(alkio->oikea); }

depth first-haku: “etsitään tietty haara mahdollisimman pitkälle ennen kuin peräännytään”

Page 25: Puun määritelmä

Binääripuu animaatioitaBinääripuu animaatioita

http://www.student.seas.gwu.edu/~idsv/idsv.html

Page 26: Puun määritelmä

SisäSisäjjärjesärjestys (tys (ininorder)order)

Järjestys:vasen alipuu - juuri - oikea alipuuD B E A F C

A

CB

E FDvoid sisajarjestys(puuos alkio){ if(alkio){ sisajarjestys(alkio->vasen); tulosta_alkio(alkio); sisajarjestys(alkio->oikea); }• hakupuun sisältö aakkostettuna

Page 27: Puun määritelmä

Binäärisen hakupuun läpikäynti Binäärisen hakupuun läpikäynti sisäsisäjjärjesärjestytyksessäksessä ( (ininorder)order)

Järjestys:vasen alipuu - juuri - oikea alipuu5 6 7 9 10 11

9

116

7 105void sisajarjestys(puuos alkio){ if(alkio){ sisajarjestys(alkio->vasen); tulosta_alkio(alkio); sisajarjestys(alkio->oikea); }

Page 28: Puun määritelmä

JälkijärjesJälkijärjestys (tys (postpostorder)order)

Järjestys:vasen alipuu - oikea alipuu – juuriD E B F C A

A

CB

E FDvoid jalkijarjestys(puuos alkio){ if(alkio){ jalkijarjestys(alkio->vasen); jalkijarjestys(alkio->oikea); tulosta_alkio(alkio); }

Page 29: Puun määritelmä

TasojärjesTasojärjestys (level order)tys (level order)

Järjestys:A B C D E F

A

CB

E FD

breadth first haku: “etsitään tietyllä etäisyydellä juuresta olevia solmuja.”

Page 30: Puun määritelmä

Maksimi- ja minimikekoMaksimi- 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

Page 31: Puun määritelmä

ValintapuuValintapuu