next up previous contents
Next: Käänteistiedosto hajauttamalla Up: Käänteistiedostot Previous: Käänteistiedosto B-puulla   Sisältö

Käänteistiedosto trie-puulla

Dynaamisesti muuttuva käänteistiedosto voidaan toteuttaa myös trie-puilla. Trie-puita käytettäessä hakujen, uusien avainsanojen lisäysten ja vanhojen poiston aikavaatimus on $O(\vert P\vert)$, missä $\vert P\vert$ on käytetyn avainsanan pituus. Trie-puuta käyttäen toteutetussa käänteistiedostossa ovat avainsanat aina tallennettu itse käänteistiedostoon (tämä on eräs trie-puun ominaisuus). Koska trie-puussa luodaan solmu jokaista avainsanan merkkiä kohden, trie-puun koko on yleensä suurempi kuin vastaavan B-puun, jossa luodaan solmu jokaista avainsanaa kohden. Toisaalta trie-puissa tapahtuu tiivistymistä: yhteiset alkuosat tallennetaan vain kerran. Näin ollen sopivalla avainsanajoukolla trie-puut saattavat olla B-puiden kanssa kilpailukykyisiä myös tilavaatimukseltaan. Mikäli trie-puissa tapahtuvaa tiivistymistä ei oteta huomioon, avainsanojen oletetaan olevan 8-merkkiä pitkiä ja trie-puun solmua kohti oletetaan tarvittavan 5 merkkiä, on trie-puun tilavaatimus $(5*8)a=40a$. Tämä ei kuitenkaan ole koko totuus: trie-puussa itse avainsanoja ei tarvitse tallentaa erikseen ja trie-puussa tapahtuva tiivistyminen pienentää tietorakenteen kokoa. Myös aikaisemmin esiteltyjä tiivistettyjä trie-puun esitystapoja voidaan soveltaa.



Jani Jaakkola 2004-11-19