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.

Samankaltaiset tiedostot
7. Tasapainoitetut hakupuut

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

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

Binäärihaun vertailujärjestys

Algoritmit 2. Luento 2 Ke Timo Männikkö

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Algoritmit 2. Luento 2 To Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö

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

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

Algoritmit 1. Luento 7 Ti Timo Männikkö

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

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

Algoritmit 2. Luento 4 Ke Timo Männikkö

Algoritmit 1. Luento 8 Ke Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö

B + -puut. Kerttu Pollari-Malmi

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

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

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

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

CS-A1140 Tietorakenteet ja algoritmit

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

Kierros 4: Binäärihakupuut

A TIETORAKENTEET JA ALGORITMIT

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

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

Algoritmit 1. Luento 6 Ke Timo Männikkö

Algoritmit 1. Luento 12 Ke Timo Männikkö

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

Tietorakenteet, laskuharjoitus 6,

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

14 Tasapainotetut puurakenteet

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

Algoritmit 2. Luento 3 Ti Timo Männikkö

Tietorakenteet ja algoritmit Hakurakenteet Ari Korhonen

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 1. Luento 12 Ti Timo Männikkö

Luku 4. Tietorakenteet funktio-ohjelmoinnissa. 4.1 Äärelliset kuvaukset

Algoritmit 2. Luento 10 To Timo Männikkö

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Algoritmit 2. Luento 3 Ti Timo Männikkö

Lisätään avainarvo 6, joka mahtuu lehtitasolle:

Paikkatiedon käsittely 5. Paikkatiedon indeksointi

1.1 Tavallinen binäärihakupuu

4. Joukkojen käsittely

811312A Tietorakenteet ja algoritmit III Lajittelualgoritmeista

1 Puu, Keko ja Prioriteettijono

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

B-puu. 3.3 Dynaamiset hakemistorakenteet

Kuva 1: J+-puun rakenne [HXS09].

Käsitellyt hakemistot (hajautus, ISAM): hakemisto-osa on staattinen eli ei muutu muuten kuin uudelleenorganisoinnissa.

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

useampi ns. avain (tai vertailuavain) esim. opiskelijaa kuvaavassa alkiossa vaikkapa opintopistemäärä tai opiskelijanumero

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

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

Lisätään avainarvo 1, joka mahtuu lehtitasolle:

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

6. Sanakirjat. 6. luku 298

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

Luku 8. Aluekyselyt. 8.1 Summataulukko

Tiraka, yhteenveto tenttiinlukua varten

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

Algoritmit 1. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 11 Ti Timo Männikkö

Mukautuvat järjestämisalgoritmit

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

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

58131 Tietorakenteet Erilliskoe , ratkaisuja (Jyrki Kivinen)

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

Jäsennysaiheesta lisää Täydentäviä muistiinpanoja TIEA241 Automaatit ja kieliopit, syksy 2016

Paikkatiedon hallinta ja analyysi 4. Paikkatiedon indeksointi (jatkoa)

Hakupuut muistihierarkiassa

Kysymyksiä koko kurssista?

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

Datatähti 2019 loppu

Paikkatiedon käsittely 6. Kyselyn käsittely

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

811312A Tietorakenteet ja algoritmit, , Harjoitus 7, ratkaisu

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

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

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

Fibonacci-kasoilla voidaan toteuttaa samat operaatiot kuin binomikasoilla.

D B. Harvat hakemistot. Harvat hakemistot

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

9.3 Algoritmin valinta

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto

4. Perustietorakenteet

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

Union-find-delete-algoritmien vertailua. Sari Itäluoma

CS-A1140 Tietorakenteet ja algoritmit

Algoritmi on periaatteellisella tasolla seuraava:

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.

Hakemistorakenteet. R & G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta

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

811312A Tietorakenteet ja algoritmit II Perustietorakenteet

Transkriptio:

Yleiset hakupuut 4 Monitiehakupuu: Binäärihakupuu 0 1 3 5 6 7 8 v k 1 k k 3 v v 3 v 4 k 1 k 3 k 1 k k k 3 d lapsisolmua d 1 avainta Yleinen hakupuu? Tietorakenteet, syksy 007 1 Esimerkki monitiehakupuusta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint. lasta Tietorakenteet, syksy 007 Esim. avaimen k = 34 haku 1 50 5 8 1 50 5 8 Avaimen k = 50 haku Haun työmäärä per solmu? Miten solmun v avaimet k i, alkiot x i ja lapsisolmut v i talletetaan? 1 50 5 8 sekvenssi työ = O(d) esim. AVL-puu työ = O(log(d)) (d: lapsilkm) Käsiteltyjä solmuja? O(h) (puun korkeus) Tietorakenteet, syksy 007 3 Tietorakenteet, syksy 007 4

B-puu: monitiehakupuu, jossa: minimiaste t (t ) kullakin sisäsolmulla vähintään t lasta kullakin solmulla vähintään t 1 avainta paitsi juuri: jos puu ei tyhjä, juurisolmulla vähintään 1 avain ( vähintään lasta) kussakin solmussa korkeintaan t 1 avainta korkeintaan t lasta jokainen lehtisolmu samalla tasolla 1 50 5 8 B-puu, jonka minimiaste on t = : (,4)-puu sisäsolmulla saa olla, 3 tai 4 lasta n-solmuisen B-puun korkeus h? väh. t lasta, lehdet tasakorkeudella h täydellisen t-asteisen puun korkeus = O(log t (n)) Tietorakenteet, syksy 007 5 Avaimen k lisäys B-puuhun k = 1 50 5 8 Tietorakenteet, syksy 007 6 k = 1 50 5 8 edetään avaimen k hakupolku lehtisolmuun asti jos k i = k, jatketaan esim. vasemmalle (lapseen v i ) avain k lisätään omalle paikalleen lehtisolmussa (avainten lineaarinen järjestys) 1 50 5 8 Tietorakenteet, syksy 007 7 Tietorakenteet, syksy 007 8

Lisätään edelleen k = 45 1 k = 45 50 5 8 1 45 50 5 8 B-puussa sallittu t 1 avainta Solmussa t avainta ns. ylivuoto Tietorakenteet, syksy 007 Ylivuodon korjaaminen 45 50 5 45 50 solmu jaetaan kahtia: t avainta yhteen solmuun 5 1 avain lisätään vanhempaan loput t 1 toiseen solmuun jos ei vanhempaa (jaettiin juuri), luodaan uusi juuri Tietorakenteet, syksy 007 Jako voi johtaa vanhemman ylivuotoon 1 45 50 5 8 1. 5. k = 45 50 61 8 5 45 50 61 8 3. 5 4. 45 50 61 8 5 1 5 45 50 8 45 50 61 8 ylivuotojen korjauksen työmäärä? O(t log(n)) solmun lisäys ainoastaan juurisolmun jaossa lehdet säilyvät samalla tasolla Tietorakenteet, syksy 007 11 Tietorakenteet, syksy 007 1

Avaimen k poisto B-puusta k = 5 5 45 50 61 8 jos k sisäsolmussa, korvataan edeltäjäavaimella myös seuraaja olisi ok, vrt. binäärihakupuu 50 45 61 8 50 45 61 8 Poisto: lehtisolmun avainten lukumäärä pienenee aina ok, jos kyseessä juurisolmu muut solmut: B-puu vaatii, että avaimia vähintään t 1 solmussa t avainta ns. alivuoto Tietorakenteet, syksy 007 Solmun v alivuodon korjaaminen tapaus 1: solmulla v vierekkäinen sisar w, jossa yli t 1 avainta 8 8 w 1 w w 3 w 1 w w 3 tehdään siirto: solmujen v ja w välinen avain solmuun v solmun w solmun v puoleisin avain vanhempaan (äsken siirretyn avaimen tilalle) solmun w solmun v puoleisin alipuu solmuun v (solmu/lapsimäärät tasapainoon) Tietorakenteet, syksy 007 Tietorakenteet, syksy 007 14 tapaus : solmun v (kummallakin) vierekkäisellä sisarella w tasan t 1 avainta 50 8 w 1 w 50 8 w 1 w tehdään sulautus: solmujen v ja w avaimet sekä niiden välinen avain vanhemmasta uuteen solmuun v vanhemman avaimet/lapset vähenevät yhdellä v perii solmujen v ja w alipuut (solmu/lapsimäärien tasapaino säilyy) Tietorakenteet, syksy 007 16

sulautus voi johtaa alivuotoon vanhemmassa Vielä yksi esimerkki poistoista alivuotojen korjauksen työmäärä? O(t log(n)) alivuoto juurisolmussa: vain jos avaimia 0 tällöin juurella oltava tasan 1 lapsi vanha juuri pois, tilalle sen ainoa lapsi (lehtisolmut pysyvät samalla tasolla) 1. 3. 5 k = 61 31 50 61 8. 4. 31 50 5 8 5 k = 8 5 31 50 8 31 50 Tietorakenteet, syksy 007 17 Tietorakenteet, syksy 007 18 Vielä yksi esimerkki poistoista... 4. 5. 5 5 k = 50 31 50 31 50 6. 5 7. 5 31 31 Tietorakenteet, syksy 007 1