Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia



Samankaltaiset tiedostot
v 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint.

A TIETORAKENTEET JA ALGORITMIT

Miten käydä läpi puun alkiot (traversal)?

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö

Binäärihaun vertailujärjestys

Algoritmit 1. Luento 7 Ti Timo Männikkö

Algoritmit 1. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö

1.1 Tavallinen binäärihakupuu

Algoritmit 2. Luento 4 Ke Timo Männikkö

Algoritmit 1. Luento 8 Ke Timo Männikkö

3. Hakupuut. B-puu on hakupuun laji, joka sopii mm. tietokantasovelluksiin, joissa rakenne on talletettu kiintolevylle eikä keskusmuistiin.

Algoritmit 2. Luento 4 To Timo Männikkö

puuta tree hierarkkinen hierarchical

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003

1 Puu, Keko ja Prioriteettijono

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö

lähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa

Algoritmit 2. Luento 6 Ke Timo Männikkö

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 2. helmikuuta 2012

Algoritmit 1. Luento 12 Ke Timo Männikkö

Kysymyksiä koko kurssista?

811312A Tietorakenteet ja algoritmit III Lajittelualgoritmeista

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

58131 Tietorakenteet (kevät 2008) 1. kurssikoe, ratkaisuja

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ...

Datatähti 2019 loppu

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

Algoritmit 1. Luento 12 Ti Timo Männikkö

14 Tasapainotetut puurakenteet

Tietorakenteet, laskuharjoitus 7, ratkaisuja

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 9. marraskuuta 2009

Tietorakenteet, laskuharjoitus 6,

Koe ma 1.3 klo salissa A111, koeaika kuten tavallista 2h 30min

4. Joukkojen käsittely

Kierros 4: Binäärihakupuut

private TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla;

CS-A1140 Tietorakenteet ja algoritmit

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Eräs keskeinen algoritmien suunnittelutekniikka on. Palauta ongelma johonkin tunnettuun verkko-ongelmaan.

B + -puut. Kerttu Pollari-Malmi

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

7. Tasapainoitetut hakupuut

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

Kierros 3: Puut. Tommi Junttila. Aalto University School of Science Department of Computer Science

9.3 Algoritmin valinta

Oppijan saama palaute määrää oppimisen tyypin

(a) L on listan tunnussolmu, joten se ei voi olla null. Algoritmi lisäämiselle loppuun:

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 3. joulukuuta 2015

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 1, , vastauksia

Sekvenssi: kokoelma peräkkäisiä alkioita (lineaarinen

4. Puut. Kuva 4.1. Sukupuu Puun abstrakti tietotyyppi

Helsingin yliopisto/tktl XML-metakieli XPath

Algoritmi on periaatteellisella tasolla seuraava:

Tietorakenteet ja algoritmit Hakurakenteet Ari Korhonen

Algoritmit 2. Luento 10 To Timo Männikkö

8 XSLT-muunnoskieli XSLT-muunnoskieli

5. Puut. Kuva 5.1. Sukupuu Puun abstrakti tietotyyppi

Paikkatiedon hallinta ja analyysi 4. Paikkatiedon indeksointi (jatkoa)

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe ratkaisuja (Jyrki Kivinen)

7. Satunnaisalgoritmit (randomized algorithms)

Datatähti 2000: alkukilpailun ohjelmointitehtävä

58131 Tietorakenteet (kevät 2009) Harjoitus 9, ratkaisuja (Antti Laaksonen)

58131 Tietorakenteet Erilliskoe , ratkaisuja (Jyrki Kivinen)

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Algoritmit 2. Luento 9 Ti Timo Männikkö

Muita linkattuja rakenteita

CS-A1140 Tietorakenteet ja algoritmit

5. Keko. Tietorakenne keko eli kasa (heap) on tehokas toteutus abstraktille tietotyypille prioriteettijono, jonka operaatiot ovat seuraavat:

3. Binääripuu, Java-toteutus

811312A Tietorakenteet ja algoritmit V Hash-taulukot ja binääriset etsintäpuut

A TIETORAKENTEET JA ALGORITMIT KORVAAVAT HARJOITUSTEHTÄVÄT 3, DEADLINE KLO 12:00

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

Tarkennamme geneeristä painamiskorotusalgoritmia

Pienin virittävä puu (minimum spanning tree)

811312A Tietorakenteet ja algoritmit II Perustietorakenteet

Algoritmit 2. Luento 11 Ti Timo Männikkö

Tutkimusmenetelmät-kurssi, s-2004

Paikkatiedon hallinta ja analyysi 4. Paikkatiedon indeksointi

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

Tietorakenteet ja algoritmit II Loppuraportti, ryhmä 7

A TIETORAKENTEET JA ALGORITMIT

Pikalajittelu: valitaan ns. pivot-alkio esim. pivot = oikeanpuoleisin

Algoritmit 1. Luento 13 Ma Timo Männikkö

Tietorakenteet ja algoritmit Puurakenteet Ari Korhonen

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016

Algoritmit 1. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö

Stabiloivat synkronoijat ja nimeäminen

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe malliratkaisut ja arvosteluperusteet

Algoritmit 2. Luento 3 Ti Timo Männikkö

Transkriptio:

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