Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Kukin alkio (viite) talletettuna solmuun (node) vastaa paikan käsitettä Kahden solmun u ja v väliset suhteet hierarkiassa: Tietorakenteet, syksy 00 Tietorakenteet, syksy 00 u on solmun v vanhempi (parent) u on solmun v välitön edeltäjä (askelta ylempänä hierarkiassa) solmut u ja v yhdistetty kaarella ja u on v:n yläpuolella vanhemman sijaan joskus termi isä (father) u on solmun v lapsi (child) u on solmun v välitön seuraaja (askelta alempana hierarkiassa) solmut u ja v yhdistetty kaarella ja u on v:n alapuolella Tietorakenteet, syksy 00 Tietorakenteet, syksy 00
u on solmun v esivanhempi (ancestor) u = v tai u on solmun v vanhemman esivanhempi u on v tai jokin sitä edeltävä solmu kukin solmu v on itsensä esivanhempi! u on solmun v jälkeläinen (descendant) v on solmun u esivanhempi kukin solmu v on itsensä jälkeläinen! Tietorakenteet, syksy 00 Tietorakenteet, syksy 00 Puurakenteen määritelmä Puu T on sellainen solmujen joukko, jossa: on yksikäsitteinen juuri (root) r (tai puu tyhjä) ylimmän tason solmu kullakin solmulla on yksikäsitteinen vanhempi ainoa poikkeus: juuri ( kantaisä ) kukin solmu on juuren r jälkeläinen tai yhtäpitävästi: juuri r on kunkin solmun esivanhempi Jos puussa on n solmua, niin kaaria on? n Tietorakenteet, syksy 00 Puurakenteen määritelmä Puu? ei: lla kaksi vanhempaa Puu? ei: sekä lla että lla ei vanhempaa Tietorakenteet, syksy 00
Puurakenteen määritelmä Esim. www-osoiteavaruuden hierarkkinen ositus stanford.edu un.org uta. tut. Puu? Kyllä www.uta. Tietorakenteet, syksy 00 Solmut u ja v ovat sisaruksia (siblings) solmuilla u ja v on sama vanhempi stanford.edu un.org uta. tut. www.uta. Tietorakenteet, syksy 00 0 Solmu v on sisäsolmu (internal node) solmulla v on vähintään yksi lapsi Solmu v on ulkoli lehti (internal node / leaf) solmulla v ei ole yhtään lapsisolmua stanford.edu un.org uta. tut. www.uta. stanford.edu un.org uta. tut. www.uta. Tietorakenteet, syksy 00 Tietorakenteet, syksy 00
Solmun v alipuu (subtree): puun osa, jossa ainoastaan solmun v jälkeläiset sekä niiden väliset kaaret Solmun v syvyys: solmun v esivanhempien lukumäärä - kuinka monta kaarta ylitetään kuljettaessa puun juuresta solmuun v stanford.edu un.org uta. tut. www.uta. stanford.edu un.org uta. tut. www.uta. Tietorakenteet, syksy 00 Tietorakenteet, syksy 00 Solmun v korkeus: pisin etäisyys (kaarien lkm) solmun v ja sen alipuun jonkin lehtisolmun välillä suurin ylitettävien kaarien määrä kuljettaessa solmusta v johonkin sen alipuun lehtisolmuun (kun kaaria kuljetaan aina alaspäin) Puun taso d: niiden solmujen joukko, joiden syvyys on d stanford.edu un.org uta. tut. www.uta. stanford.edu un.org uta. tut. www.uta. Tietorakenteet, syksy 00 Puun korkeus: juurisolmun r korkeus = suurin kyseisen puun lehtisolmun syvyys Tietorakenteet, syksy 00
Solmun v syvyyden laskenta, Depth(v), yksinkertaista rekursiivisesti solmun v syvyys on yhtä suurempi kuin sen vanhemman syvyys jos v on juuri, on sen syvyys 0 Aikavaativuus? O(n) Depth(v) if v on juuri then return 0 else return + Depth(Parent(v)) Tietorakenteet, syksy 00 Solmun v korkeuden laskenta, Height(v), samaan tapaan rekursiivisesti solmun v korkeus on yhtä suurempi kuin suurin sen lapsen korkeus jos v on lehti, on sen korkeus 0 Height(v) if v on lehti then return 0 else h max{height(u) : u Children(v)} return h + Aikavaativuus? O(n) Tietorakenteet, syksy 00 Järjestetty puu Järjestetty puu (ordered tree): kunkin solmun lapsisolmuilla tietty lineaarinen järjestys esim. vasemmalta oikealle tietty järjestys:. lapsi,. lapsi,. lapsi, jne. (binary tree): järjestetty puu, jossa kullakin solmulla korkeintaan lasta aito (strict/proper) binääripuu: lapsia joko 0 tai Tietorakenteet, syksy 00 Tietorakenteet, syksy 00 0
voidaan kuvata aidoksi binääripuuksi lisätään vajaisiin paikkoihin tyhjät solmut Tässä esim. asetetaan tyhjä solmu null-viitteen paikalle lehtisolmut aina tyhjiä solmuja, kaikki alkiot sisäsolmuissa Tietorakenteet, syksy 00 Eräs binääripuun sovellus: päätöspuu kyllä hylätään kyllä hyväksytään Luottohäiriöitä? kyllä Vakituinen työ? ei laina > 0000 $ ei hylätään sisäsolmu: kyllä/ei -kysymys ei hyväksytään lehtisolmu: matkalla juuresta lehtisolmuun annettujen vastausten tuottama johtopäätös Tietorakenteet, syksy 00 n kussakin solmussa kaksi viitettä lapsisolmuihin vasen (left) lapsi ja oikea (right) lapsi solmun v vasen (oikea) alipuu: solmun v vasemman (oikean) lapsen alipuu LeftChild() RightChild() LeftChild() RightChild() RightChild() ssa solmun v lapsilla sekä solmulla v keskenään tietty järjestys vahvempi järjestys kuin järjestetyssä puussa lapsisolmun paikka (vasen/oikea) lapsisolmun järjestysnumero (ensimmäinen/toinen) LeftChild() RightChild() RightChild() Tietorakenteet, syksy 00 Tietorakenteet, syksy 00