Lataa esitys
Esittely latautuu. Ole hyvä ja odota
JulkaistuHannu Niemelä Muutettu yli 8 vuotta sitten
1
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
2
Puut Puu koostuu solmuista Solmut koostuvat tietoalkiosta ja linkeistä
linkki solmu tietoalkio
3
Puut – solmun aste Solmun aste (out-degree) tarkoittaa alipuiden lukumäärää Puun aste on maksimi solmujen asteista solmun aste = 3 solmun aste = 2
4
Puut – vanhempisuhde Solmu jolla on alipuita on alipuiden juurisolmujen vanhempi ja alipuiden juurisolmut ovat lapsia A:lla ei ole vanhempia B on E:n ja F:n vanhempi
5
Puut – lapsisuhde Solmu jolla on vanhempi on sen lapsi
B, C ja D ovat A:n lapsia F:llä ei ole lapsia
6
Puut – sisaruussuhde Saman vanhemman lapset ovat sisaruksia
A:lla ei ole sisaruksia B, C ja D ovat sisaruksia keskenään
7
A, B ja E ovat L:n esivanhempia
Puut – esivanhemmat Kaikki solmut juurisolmusta solmun X vanhempaan ovat X:n esivanhempia A:lla ei ole esivanhempia A, B ja E ovat L:n esivanhempia
8
Puut – 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 B:n jälkeläiset ovat: E, F, K ja L F:llä ei ole jälkeläisiä
9
Puut – solmun taso Juurisolmu on tasolla yksi
Muiden taso on vanhemman taso + 1 taso 1 2 3 4
10
Binääripuu Solmun lapsien maksimimäärä on kaksi 12 3 45 7 31 55
11
Binääripuu toteutettuna linkeillä
12
Binääripuu toteutettuna taulukon avulla
13
Täydellinen (perfect) binääripuu
Jokaisella solmulla on 0 tai 2 lasta Kaikki lehtisolmut ovat samalla tasolla A B C D E F G
14
Täysi binääripuu Jokaisella solmulla on 0 tai 2 lasta A B C D E
15
Täydellinen (complete) binääripuu
Kaikki tasot ovat täynnä alinta tasoa lukuunottamatta Alimmalla tasolla solmut ovat vasemmassa reunassa A B C D E F Complete Tree
16
Täydellinen (complete) binääripuu
Kaikki tasot ovat täynnä alinta tasoa lukuunottamatta Alimmalla tasolla solmut ovat vasemmassa reunassa A B C E F G Not a Complete Tree
17
Solmujen lukumäärä binääripuussa – huonoin tapaus
Solmujen lukumäärä on N Huonoimmassa tapauksessa (lista) puun syvyys on N A B C
18
Solmujen lukumäärä binääripuussa – paras tapaus
Parhaassa tapauksessa puu on täydellinen (perfect) A B C D E F G
19
Solmujen lukumäärä täydellisessä binääripuussa
Tasolla 1 on yksi solmu Tasolla 2 on kaksi solmua Tasolla 3 on neljä solmua … Tasolla n on 2n-1 solmua
20
Solmujen lukumäärä täydellisessä binääripuussa
Tasolla n on 2n-1 solmua n:llä tasolla on yhteensä N= …+2n-2+2n-1=2n-1 solmua Tä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).
21
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
22
Avaimen poisto binäärisestä hakupuusta
Poistetaan avain 60
23
Puussa kulkeminen Läpikäyntijärjestyksiä: - esijärjestys (preorder)
- sisäjärjestys (inorder) - jälkijärjestys (postorder) - tasojärjestys (level order)
24
Esijärjestys (preorder)
juuri – vasen alipuu - oikea alipuu A B D E C F A B C void esijarjestys(puuos alkio){ if(alkio){ tulosta_alkio(alkio); esijarjestys(alkio->vasen); esijarjestys(alkio->oikea); } D E F depth first-haku: “etsitään tietty haara mahdollisimman pitkälle ennen kuin peräännytään”
25
Binääripuu animaatioita
26
Sisäjärjestys (inorder)
vasen alipuu - juuri - oikea alipuu D B E A F C A B C void sisajarjestys(puuos alkio){ if(alkio){ sisajarjestys(alkio->vasen); tulosta_alkio(alkio); sisajarjestys(alkio->oikea); } D E F • hakupuun sisältö aakkostettuna
27
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
28
Jälkijärjestys (postorder)
vasen alipuu - oikea alipuu – juuri D E B F C A A B C void jalkijarjestys(puuos alkio){ if(alkio){ jalkijarjestys(alkio->vasen); jalkijarjestys(alkio->oikea); tulosta_alkio(alkio); } D E F
29
Tasojärjestys (level order)
A B C D E F A B C D E F breadth first haku: “etsitään tietyllä etäisyydellä juuresta olevia solmuja.”
30
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
31
Valintapuu
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.