7. Tasapainoitetut hakupuut



Samankaltaiset tiedostot
7. Tasapainoitetut hakupuut

7. Tasapainoitetut hakupuut

S uay uvaxy uv 2 Ax 2 y... uv i Ax i y uv i wx i y.

Binäärihaun vertailujärjestys

Σ on numeroituvasti ääretön. Todistus. Muodostetaan bijektio f : N Σ seuraavasti. Olkoon

Epäyhtälön molemmille puolille voidaan lisätä sama luku: kaikilla reaaliluvuilla a, b ja c on voimassa a < b a + c < b + c ja a b a + c b + c.

4. Taajuusalueen suodatus 4.1. Taustaa Perusteita

Optioiden hinnoittelu binomihilassa

Matematiikan tukikurssi

Omakotitalon energiaratkaisu Pieni askel omavaraisuuteen.

Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta

Matematiikan tukikurssi

Johdatus diskreettiin matematiikkaan Harjoitus 7,

Tesomajärven koulusta Tesoman kouluksi

Käyttöarvon kvantitatiivisesta mittaamisesta. Tommi Höynälänmaa 19. marraskuuta 2012

MS-A Matriisilaskenta Laskuharjoitus 3

monissa laskimissa luvun x käänteisluku saadaan näyttöön painamalla x - näppäintä.

Esimerkki 8. Ratkaise lineaarinen yhtälöryhmä. 3x + 5y = 22 3x + 4y = 4 4x 8y = r 1 + r r 3 4r 1. LM1, Kesä /68

Induktio kaavan pituuden suhteen

Tasasähköyhteyden suuntaaj-asema. Ue j0ƒ. p,q

havainnollistus, muokkaus ja viimeistely

Matematiikan tukikurssi 3.4.

Lisää segmenttipuusta

MAA10 HARJOITUSTEHTÄVIÄ

2.2 Täydellinen yhtälö. Ratkaisukaava

JOENSUUN SEUDUN HANKINTATOIMI KOMISSIOMALLI

Algoritmit ja tietorakenteet Copyright Hannu Laine. 1, kun n= 0. n*(n-1)!, kun n>0;

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.

Luento 6. June 1, Luento 6

Dynaaminen optimointi

Aluksi Kahden muuttujan lineaarinen epäyhtälö

Rahoitusriskit ja johdannaiset Matti Estola. luento 10 Binomipuut ja optioiden hinnoittelu

Tesomajärven koulusta Tesoman kouluksi

Lukion. Calculus. Polynomifunktiot. Paavo Jäppinen Alpo Kupiainen Matti Räsänen Otava PIKATESTIN JA KERTAUSKOKEIDEN TEHTÄVÄT RATKAISUINEEN

Yhteistyötä teatterista & Taiteesta tuotteeksi -hankkeet

Tarjoajalla on oltava hankinnan kohteen laatu ja laajuus huomioon ottaen kokemusta seuraavilla alueilla:

11.4. Rakenteellista käsittelyä tilavuusrenderöintialgoritmeissa

Kuntosaliharjoittelun kesto tunteina Kokonaishyöty Rajahyöty

x = x x 2 + 2y + 3 y = x + 2y f 2 (x, y) = 0. f 2 f 1

Matematiikan tukikurssi

Asia T-237/00. Patrick Reynolds vastaan Euroopan parlamentti

Oppimisen haasteet ja mahdollisuudet terveysalan simulaatioissa

Algoritmit 2. Luento 8 Ke Timo Männikkö

30 + x ,5x = 2,5 + x 0,5x = 12,5 x = ,5a + 27,5b = 1,00 55 = 55. 2,5a + (30 2,5)b (27,5a + 27,5b) =

Diskreetit rakenteet

Ratkaisuehdotukset Kesäyliopisto Kuvassa on esitetty erään ravintolan lounasbuffetin kysyntäfunktio.

Massaeditorikoulutus KANSALLISKIRJASTO - Kirjastoverkkopalvelut

VES (3) 1 Sopimuksen peruste ja tarkoitus

Kolme pientä opinto-ohjaajaa ja suuren suuri lukio

c) Määritä paraabelin yhtälö, kun tiedetään, että sen huippu on y-akselilla korkeudella 6 ja sen nollakohdat ovat x-akselin kohdissa x=-2 ja x=2.

Kenguru 2016 Mini-Ecolier (2. ja 3. luokka) Ratkaisut

/m 3 Alv 24 % Yhteensä Vesi 1,76 0,42 2,18 Jätevesi 1,88 0,45 2,33

- Kommentoi koodisi. Koodin kommentointiin kuuluu kuvata metodien toiminta ja pääohjelmassa tapahtuvat tärkeimmät toiminnat. Esim.

Oletetaan, että funktio f on määritelty jollakin välillä ]x 0 δ, x 0 + δ[. Sen derivaatta pisteessä x 0 on

II- luento. Etiikan määritelmiä. Eettisen ajattelu ja käytänteet. 1 Etiikka on oikean ja väärän tutkimusta

b/don 03" DI Do o0 au11

HELSINGIN KAUPUNKI VUOKRASOPIMUS 1 LIIKUNTAVIRASTO

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1

k = kiinteistötyypin mukainen kerroin seuraavan taulukon mukaan:

Hae Opiskelija käyttöohje

A TIETORAKENTEET JA ALGORITMIT

Vesimaksun yksikköhinta, / m 3 Liittyjältä peritään vesimaksua toimitetusta vedestä mitatun kulutuksen mukaan.

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

ThermiSol EPS- ja Platina -eristeiden paloturvallinen käyttö tiiliverhoillussa ulkoseinässä

TW- EAV510: WDS- TOIMINTO KAHDEN TW- EAV510 LAITTEEN VÄLILLÄ

Osaamisen tunnistaminen/tunnustaminen

Lauri Tarkkonen: Kappa kerroin ja rinnakkaisten arvioitsijoiden yhdenmukaisuus

Kaukolämpöliiketoiminnan yhtiöittäminen ja alv Siikajoen kunta

Avioliittoon vihkiminenopas

Derivaatta. Joukko A C on avoin, jos jokaista z 0 A kohti on olemassa ǫ > 0: jos z z 0 < ǫ, niin z A. f : A C on yksiarvoinen.

TOIMEKSIANTOSOPIMUS. 1. Sopijapuolet. 2. Yhteyshenkilöt. 3. Sopimuksen tausta ja tavoitteet. Osoite: Kasurilantie 1, PL 5, 71801, Siilinjärvi

Ohje PhotoPortaalin käytöstä

PRK. Muoviputkien liittimet Soveltuu PEL, PEH, PEM ja PELM -putkille

10. Optiohinnoittelu binomihilassa

ULVILAN KAUPUNGINVIRASTON JOHTOSÄÄNTÖ

Perusopetuksen aamu- ja iltapäivätoiminnan laadun arviointi 2016 Västankvarns skola/ Tukiyhdistys Almus ry.

Helsingin hengessä sopua ja sovittelua työyhteisön arkeen

OSAKKEENOMISTAJIEN NIMITYSTOIMIKUNNAN TYÖJÄRJESTYS MUNKSJÖ OYJ (Y-TUNNUS )

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

Kun annettu differenssiyhtälö z-muunnetaan puolittain, saadaan: 1 1 z Y z zy z z/4 4

Ohje EU:n tulli- ja veroalueen ulkopuolelle rekisteröidyillä yksityiskäytössä olevilla huviveneillä Suomeen saapuville

Espoon kaupunki Pöytäkirja 22

- Valitaan kohta Asetukset / NAT / Ohjelmallinen palvelin - Seuraavassa esimerkki asetuksista: valitaan käytössä oleva ohjelmistorajapinta

2.7 Neliöjuuriyhtälö ja -epäyhtälö

3. Piirrä kaksi tasoa siten, että ne jakavat avaruuden neljään osaan.

LBC 3210/00 Line Array -sisä-/ulkokaiutin

LIITE. asiakirjaan KOMISSION TIEDONANTO

KELAN INDUKTANSSI VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA SÄHKÖTEKNIIKKA. Miika Manninen, n85754 Tero Känsäkangas, m84051

Miten osoitetaan joukot samoiksi?

5. www-kierroksen mallit

(kevät 2019) Markku Laitinen Uurainen Siv u 1

Syksyn aloituskampanjat lippukunnissa

Seppo I. Niemelä: Mikrobiologian kvantatiivisten

Hoitoketjut sotealueella. Jukka Mattila Johtajaylilääkäri Lapin sairaanhoitopiiri

1780 N:o 567 LIITTEET 1 2 LASKUPERUSTEET TYÖNTEKIJÄN ELÄKELAIN MUKAISTA TOIMINTAA HARJOITTAVILLE ELÄKESÄÄTIÖILLE

Tällaisessa tapauksessa on usein luontevaa samaistaa (u,v)-taso (x,y)-tason kanssa, jolloin tason parametriesitys on *** VEKTORIANALYYSI.

Johdatus L A TEXiin. 6. Omat komennot ja lauseympäristöt Markus Harju. Matemaattiset tieteet

3. Muuttujat ja operaatiot 3.1

Yhdistyksen jäsenet Yhdistyksen varsinaiseksi jäseneksi voi hallitus hyväksyä jokaisen, joka on suorittanut tutkinnon Lahden ammattikorkeakoulussa.

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

Transkriptio:

7.. Monitiehakpt 7. Tasapainoitett hakpt 00 000 00 0 000 000 0 Tässä lssa jatketaan järjestetyn sanakirjan tarkastela esittämällä kehittynyt ptietorakenne. Lssa 7.. esitetään monitiehakpn käsite. Se on järjestetty p, jonka jokaisessa sisäsolmssa oi olla seita tietoyksiköitä ja solmlla seita lapsia. Se on binäärihakpn (lk 6.3.) yleistys. Yksi sen hyödyistä on sisäsolmjen määrän äheneminen binäärihakphn errattna. Lssa 7.2. tarkastellaan 2 yksityiskohtaisesti määrättyä monitiehakpta, (2,) pta, josta käytetään myös nimityksiä 2 p tai 2 3 p, koska sillä oi olla kahdesta neljään lasta. Kaikki sen lehdet oat samalla tasolla. Se on tehokas haka käsittäille operaatioille yltäen tällöin samaan kin AVL p eli aikakompleksisteen O(log n). Näitä ielä kehittyneempiä ptyyppejä oat pna mstat pt (red black tree) ja iistopt (splay tree), joita ei tässä tarkastella. 7. lk 36 Tässä kataan, kinka monilapsisia monitiepita käytetään hakpina. Jälleen phn talletettaa tieto esitetään tietoyksikköinä, pareina 00 000 (k,x), 00 jossa 0 k on 000 aain 000 ja x0 tähän liittyä alkio. Olkoon järjestetyn pn solm. Se on d solm, jos sillä on d lasta. Monitiehakp (mlti way search tree) on järjestetty p T, jolla on seraaat ominaisdet (ka 7..(a)): 2 Jokaisella pn T sisäsolmlla on ähintään kaksi lasta. Jokainen pn T sisäsolm sisältää kokoelman tietoyksiköitä motoa (k,x), jossa k on aain ja x alkio. Jokainen pn T d solm, jonka lapset oat,, d, sisältää d tietoyksikköä (k, x ),, (k d, x d ), missä k k d. Määritellään lisäksi k 0 = ja k d = +. Jokaiselle tietoyksikölle (k,x), joka on talletett solmn :n aliphn jreltaan i, i =,, d, on k i k k i. 7. lk 36 22 00 000 00 0 000 000 0 0 2 Kn siis solmn ajatellaan talletetksi jokko aaimia mkaanlkien kitteelliset erikoisaaimet k 0 = ja k d = + (rajoittimia), niin aliphn T jreltaan i talletetn aaimen k täytyy olla solmn talletetn kahden aaimen älissä. Tällöin d lapsen solmssa on 00 000 talletettna 00 0 d 000 arsinaista 000 0 aainta, ja se modostaa samalla perstan han sorittamiseksi monitiepssa. 3 6 8 3 23 2 27 7 Ka 7.. (alk) (a) Monitiehakp T. 2 7. lk 366 Jälleen pn lehdet oat ainoastaan paikanpitäjiä. Täten binäärihakpta oidaan pitää monitiehakpn erikoistapaksena. Toisessa ääripäässä yhden sisäsolmn monitiehakp oi käsittää seita tietoyksiköitä. Sillä, että käsittääkö monitiehakpn sisäsolm kaksi ai seampia lapsia, on seraaa shde tietoyksiköiden määrän ja lehtisolmjen määrän älillä. 2 Lase 7.. Monitiehakplla, joka sisältää n tietoyksikköä, on n+ lehteä. Persteln oi esittää harjoitstehtäänä. 7. lk 367

Hak monitiepssa Hak tapaht soraiiaisesti monitiepssa aaimella k. Lähdetään 00 000 pollle 00 0 pn 000 jresta 000 (ka 0 7..(b) (c)). Oltaessa d solmssa han aikana errataan aainta k aaimiin k,, k d, jotka on talletett solmn. Jos on k = k i jollekin i:lle, hak onnist. Mtoin jatketaan haka solmn lapsessa i, missä k i < k < k i. (määriteltiin k 0 = ja k d = + ). Jos tllaan lehteen, tiedetään, ettei haettaaa aainta ole pssa eli hak epäonnist. Monitiehakpiden tietorakenteita 2 Lssa esitettyjä yleisten piden esitystapoja oidaan soeltaa myös monitiehakpille. Lisätietona niissä pitää tallettaa khnkin solmn pelkästään tietoyksiköiden (tai aainten) jokko. 7. lk 368 22 00 000 00 0 000 000 0 0 3 6 8 3 23 2 27 Ka 7.. (jatkoa) (b) Aaimen 2 (epäonnistnt hak) hakpolk pssa T. 7 2 2 7. lk 369 22 00 000 00 0 000 000 0 0 2 Käytettäessä monitiehakpta T edstamaan sanakirjaa D khnkin sisäsolmn talletetaan iittas järjestettyyn tietoyksiköiden jokkoon. Solmn talletetta sanakirjaa ktstaan sekndääritietorakenteeksi. Tämä tkee laajempaa kokonaistta, pta, joka on 00 000 tässä 00 primääritietorakenne. 0 000 000 0 3 6 8 3 23 2 27 Ka 7.. (lopp) (c) Aaimen 2 (onnistnt hak) hakpolk pssa T. 7 2 7. lk 370 Solmn talletett sanakirja esitetään merkinnällä D(). Tähän talletetaan tietoyksiköt. Näiden persteella löydetään lapsisolm, johon siirrytään han seraaassa aiheessa. Pn T jokaisessa solmssa, jonka lapset oat,, d ja tietoyksiköt (k, x ),, (k d, x d ), oat talletettina tietoyksiköt (k, x, ), (k 2, x 2, 2 ),, (k d, x d, d ), (+, nll, d ). Sanakirjan D() tietoyksiköllä (k i, x i, i ) on aain k i ja alkio (x i, i ) (iimeisessä tietoyksikössä erikoisaain + ). 2 Haettaessa aaimen k alkiota psta Td solmn prosessointi oidaan tehdä sorittamalla hak tietoyksikön (k i, x i, i ) löytämiseksi sanakirjasta D() pienimmällä aaimella, joka on srempi tai yhtä sri kin k. On olemassa kaksi tapasta: 7. lk 37

Jos on k i < k < k i, haka jatketaan käsittelemällä lasta i. (Jos palatetaan erikoisaain k d = +, k on silloin srempi kin kaikki aaimet, jotka on talletett solmn ja haka jatketaan käsitellen lasta d.) 00 000 00 0 000 000 0 Mssa tapaksessa (k = k i ) hak päättyy onnistneena. 2 Monitiehakpn tilaaatims n tietoyksikölle on O(n) taallisten sanakirjatotetsten kera sekndääritietorakenteita arten pssa T. Soritsaika, joka on käytettää d solmssa han aikana, riipp siitä, miten sekndääritietorakenne D() totetetaan. Jos se totetetaan talkkopohjaisena järjestettynä sekenssinä tai AVL pna, on prosessoitaissa ajassa O(log d). Jos se sen sijaan totetetaan järjestämättömän sekenssin tai listapohjaisen järjestetyn sekenssin alla, solmn prosessointi kestää ajan O(d). Viitatkoon d max pn T minkä tahansa solmn lasten maksimimäärään. Olkoon h pn korkes. Näin ollen hakaika monitiehakpssa on joko O(hd max ) tai O(h log d max ) riippen sekndääritietorakenteen D() totetksesta. 7. lk 372 Jos d max on akio, han soritsaika on O(h) riippmatta sekndääritietorakenteen totetksesta. Sen mkaisesti päätaoitteena on pitää pn korkes mahdollisimman matalana, ts. h tietoyksiköiden 00 000 määrän 00 0 n logaritmisena 000 000 fnktiona. 0 Tämä aikaansaa tasapainoitetn hakpn (balanced search tree), jota pohditaan seraaaksi. 7.2. (2,) p 2 Tämä on monitiehakplaji, joka pitää solmihin talletett sekndääritietorakenteet kooltaan sppeina ja pn tasapainoitettna. Nämä taoitteet saatetaan ylläpitämällä ominaisdet (ka 7.2): Koko ominaiss: Jokaisella sisäsolmlla on enintään neljä lasta ja ähintään kaksi. Syyysominaiss: Kaikki lehdet oat samalla syyydellä. 7. lk 373 2 00 000 00 0 000 000 0 0 Solmjen koosta kiinnipitäminen tekee solmista monitiehassa yksinkertaisia. Siitä tlee myös aihtoehtoinen nimi, 2 3 p, koska jokaisella sisäsolmlla on joko 2, 3 tai lasta. Lisäksi solmn sanakirja D() sisältää sekenssin, jossa kaikki operaatiot tehdään 00 000 akioajassa 00 0 O(), 000 sillä 000 d max 0 =. Korkesominaisdesta seraa raja plle: 3 6 7 8 3 7 Ka 7.2. (2,) p. 2 7. lk 37 Lase 7.2. (2,) pn korkes on Θ(log n), kn tietoyksiköitä on n. 2 Perstel: Olkoon h (2,) pn T korkes, kn tietoyksiköitä on n. Lase osoitetaan todeksi seraaien epäyhtälöjen alla: (log(n + ))/2 h log(n + ). (7.) Koon ja syyyden nojalla lehtien lkmäärä pssa T on ähintään 2 h ja enintään h. Laseen 7.. persteella lehtien määrä pssa T on n +. 7. lk 37

Täten saadaan 2 h n + h. 00 000 00 0 000 000 0 Ottamalla 2 kantainen logaritmi jokaisesta osasta saadaan h log(n + ) 2h, josta tlee tämän laseen tlos (7.). 2 Lase 7.2. sanoo, että koko ja syyysominaisdet riittäät pitämään monitiepn tasapainoitettna. Lisäksi se osoittaa han (2,) pssa toimian ajassa O(log n) ja ettei sekndäärirakenteen totets ole ratkaisea seikka (yksinkertaisin paras, talkko tai lista), koska lasten maksimimäärä on akio d max. 7. lk 376 Lisäys Uden tietoyksikön (k,x) lisäämiseksi (2,) phn T on alksi haettaa 00 000 00 0 000 000 0 aain k. Olettaen, ettei pssa ole tätä aainta k, hak päättyy epäonnistneena lehteen z. Olkoon tämän anhempi. Usi tietoyksikkö lisätään solmn ja samoin si lapsi w (lehti) solmlle solmn z asemmalle polelle. Näin ollen lisätään (k,x,w) sanakirjaan D(). Kissa 7.3. ja 7.. esitetään sarja perättäisiä lisäyksiä (2,) phn. Tarkastellaan yksityiskohtaisesti aaimen lisäystä phn kassa 7.3(g), josta saadaan ka 7.3.(i). 2 Lisäysmenetelmä säilyttää syyysominaisden, koska si lehti lisätään samalle tasolle kin olemassa oleat lehdet ja si aain alimmalle sisäsolmtasolle. Se saattaa silti ahingoittaa kokoominaistta. Jos solm on solm ennen lisäystä, siitä tlisi solm sen jälkeen, mikä ei ole sallitta. Tällöin esiintyy ylioto (oerflow), joka on ratkaistaa sopiasti pn säilyttämiseksi lajissa (2,). 7. lk 377 6 6 2 6 2 2 2 w z 00 000 (a) 00 0 000 (b) 000 0 (c) (d) 00 3 000 6 00 0 000 000 0 3 6 6 (e) 2 2 6 Ka 7.3. (alk) Lisäyksiä (2,) phn: (a) Lähtötilanteen p, jossa on yksi tietoyksikkö, (b) aaimen 6 lisäys, (c) aaimen 2 lisäys, (d) aaimen lisäys, joka aihettaa yliodon, (e) jako, joka tottaa den jren ja (f) jaon jälkeen. (f) 2 7. lk 378 (g) 2 3 6 (i) 3 (h) 2 Ka 7.3 (jatkoa) (g) Aaimen 3 lisäys, (h) aaimen lisäys, joka aihettaa yliodon, (i) jako ja (j) jaon jälkeen. 6 (j) 2 7. lk 379

2 00 000 00 0 000 000 0 3 6 0 (k) z 3 2 6 8 0 Ka 7.3. (lopp) (k) Aaimen 0 lisäys ja (l) aaimen 8 lisäys. (l) 2 7. lk 380 Olkoot,, solmn lapset ja k,, k solmn talletett aaimet. Yliodon korjaamiseksi solmsta jaetaan (split) solm seraaasti (ka 7..): 00 000 00 0 000 000 0 Solm korataan kahdella solmlla ja, missä on 3 solm lapsinaan, 2, 3 ja aaiminaan k ja k 2. on 2 solm lapsinaan ja ja aaimenaan k. 2 Jos on pn T jri, lodaan si jri. Mtoin olkoon solmn anhempi. Lisätään aain k 3 solmn ja asetetaan ja solmn lapsiksi niin, että jos oli i:s :n lapsi, niin ja tleat :n i:nneksi ja i+:nneksi lapseksi. Jako operaatio soritetaan selästi ajassa O(). 7. lk 38 h h 2 = 2 3 00 000 00 k 0 k 2 k 3 k000 000 0 2 3 (a) Ka 7.. (2,) pn solmn jako: (a) ylioto solmssa, (b) :n kolmas aain lisätään :n anhempaan ja (c) korataan 3 solmlla ja 2 solmlla. h h 2 k 3 = 2 3 k k 2 k 2 3 (b) h k 3 h 2 3 k k 2 k 2 3 (c) 2 7. lk 382 Solmn jaon seraksena si ylioto oi esiintyä :n anhemmassa. Jos sellainen esiintyy, se sysää polestaan jaon solmn (ka 7..). Jako joko poistaa yliodon tai leittää sitä nykyisen solmn 00 000 anhempaan. 00 0 000 Näin 000 jako operaatioiden 0 lkmäärää rajoittaa pn korkes, joka on laseen 7.2. mkaisesti O(log n). Lisäyksen sorittaminen (2,) phn aatii kaikkiaan aikaa O(log n). 0 2 3 6 8 3 (a) Ka 7.. (alk) Lisäys (2,) phn aihettaen sarjan jakoja: (a) Ennen lisäystä. 2 7. lk 383

0 2 0 2 2 2 3 6 8 3 7 00 000 00 0 000 000 0 3 6 8 3 7 0 00 000 00 0 000 000 0 0 (b) (c) 3 6 8 3 7 3 6 8 3 7 3 6 8 0 2 (d) 3 7 Ka 7.. (jatkoa) (b) Aaimen 7 lisäys, joka aihettaa yliodon, (c) jako ja (d) jaon aihettama si ylioto. 2 7. lk 38 (e) Ka 7.. (lopp) (e) Toinen jako, joka tottaa den jrisolmn, sekä (f) lopllinen p. (f) 2 7. lk 38 Poisto Kn edellinen aihto on tehty, tietoyksikkö poistetaan solmsta sanakirjasta D() ja poistetaan myös :n i:s lehtilapsi. eli 00 000 Nyt 00 tarkastellaan 0 000 tietoyksikön 000 0poistamista (2,) psta T. Ensiksi pitää lonnollisesti sorittaa hak aaimella k. Tietoyksikön poisto (2,) psta oidaan aina redsoida tapakseksi, jossa poistettaa tietoyksikkö sijaitsee alimmalla sisäsolmtasolla, ts. sen lapset oat lehtiä. Jos poistettaa tietoyksikkö (k i, x i ) sijaitsee tätä ylempänä pn solmssa z, aihdetaan alksi tietoyksikkö (k i, x i ) sellaisen kanssa, joka on talletettna solmssa ja tämän lapset oat lehtiä (ka 7.6.(d)): 2. Etsitään oikeanpolimmainen sisäsolm alipsta, jonka jri on solmn zi:s lapsi, kn solmn kaikki lapset oat lehtiä. Solmn aain on tällöin alipn i srin, ts. alhaaltapäin lähin poistetlle k i. 2. Vaihdetaan solmn z tietoyksikkö (k i,x i ) solmn iimeisen tietoyksikön kanssa. 7. lk 386 00 000 Tietoyksikön 00 0 000 ja lapsen 000 0 poistaminen solmsta säilyttää syyysominaisden, mtta ei ältämättä koko ominaistta. Jos on ennen poistoa 2 solm, siitä tlisi solm, mikä ei ole sallitta (2,) pssa. Tällöin esiintyy alioto (nderflow). 2 Aliodon korjaamiseksi tarkistetaan, onko solmn iereinen sisars 3 solm tai solm. Jos tällainen iereinen sisars w on olemassa, soritetaan siirto (transfer), jossa siirretään solmn w lapsi solmn, w:n aain :n ja w:n anhempaan sekä :n aain solmn (ka 7.6.(b) (c)). Jos solmlla on ainoastaan yksi ierekkäinen sisars, joka on 2 solm, tai molemmat ierekkäiset sirarkset oat 2 solmja, soritetaan slattaminen (fsion), jossa lomitetaan sisarksensa kanssa lomalla si solm ja siirretään aain solmn anhemmasta solmn (ka 7.6. (e) (f)). 7. lk 387

2 2 2 0 00 000 00 0 000 000 0 6 8 3 7 0 6 w 8 3 7 6 0 00 000 00 0 000 000 0 8 3 7 6 0 8 3 7 (a) Ka 7.6. Poistojen sarja (2,) psta: (a) aaimen poisto aihettaen aliodon, (b) siirto ja (c) siirron jälkeen. 6 00 000 00 0 000 000 0 (g) 3 8 0 7 (b) 6 0 w 2 8 3 7 (c) Ka 7.6. (g) Aaimen 3 poisto ja (h) tämän jälkeen. 2 7. lk 388 (h) 6 8 0 7 2 7. lk 390 (d) Ka 7.6. (d) Aaimen 2 poisto, (e) slattaminen ja (f) tämän jälkeen. (f) (e) 6 2 8 0 3 7 7. lk 389 Slattaminen solmssa saattaa aikaansaada den aliodon solmn anhemmassa, mikä polestaan tottaa siirron tai slattamisen solmssa (ka 7.7.). Tästä johten slattamisoperaatioiden määrää rajoittaa pn korkes, joka on laseen 7.2. mkaan O(log n). Jos 00 000 alioto 00 0 leiää 000 jreen 000 saakka, 0 niin jri yksinkertaisesti poistetaan (ka 7.7. (c) (d)). Analyysi 2 (2,) pna totetetn sanakirjan pääoperaatiot findelement, insertitem ja remoe oat kaikki lokkaa O(log n). Soritsajat tleat seraaista seikoista. (2,) pn korkes, kn pssa on n tietoyksikköä, on O(log n) laseen 7.. mkaan. Jako, siirto ja slattaminen aatiat ajan O(). Tietoyksikön hak, lisäys ja poisto käyät O(log n) solmssa. 7. lk 39

6 6 00 000 00 0 000 000 0 6 6 00 000 00 0 000 000 0 8 0 7 8 0 7 8 0 7 8 0 7 (a) Ka 7.7. Slattamisten leiäminen (2,) pssa: (a) aaimen poisto, joka aihettaa aliodon, ja (b) slattaminen. (b) 2 7. lk 392 (c) Ka 7.7. (lopp) (c) Toinen slattaminen, joka aihettaa jren poistamisen, ja (d) lopllinen p. (d) 2 7. lk 393