2010-10-01 16 views
6

Sto cercando di creare un Trie ma su un telefono cellulare che ha una capacità di memoria molto limitata.Trie basato su disco?

Ho pensato che probabilmente è meglio che l'intera struttura sia archiviata su disco, e caricata solo se necessario poiché posso tollerare alcune letture del disco. Ma, dopo alcuni tentativi, sembra che questa sia una cosa molto complicata da fare.

Quali sono alcuni modi per memorizzare un Trie su disco (ovvero solo parzialmente caricato) e mantenere la proprietà di ricerca rapida?
È già una buona idea iniziare?

+1

Mi piacerebbe raggiungere un albero B piuttosto che un trie in questa situazione, ma mi piacerebbe anche conoscere la risposta a questa domanda. – zwol

+0

I tentativi sono strutture per supportare una rapida ricerca. Sembra un buon caso d'uso per alcuni motori di database incorporati, come SQLite, o alcuni http://en.wikipedia.org/wiki/Dbm derivato – permeakra

risposta

4

La carta B-tries for disk-based string management risponde alla tua domanda.

Rende l'osservazione:

A nostra conoscenza, ci deve ancora essere una proposta in letteratura per una struttura di dati trie-based, come ad esempio il trie burst, la possono risiedere in modo efficiente su disco per supportare attività di elaborazione di stringhe comuni.

+1

http://www.naskitis.com/naskitis-vldbj09.pdf – RichardOD

+0

il la carta è inattivo :( – bgs

+0

@bgs il link che RichardOD ha pubblicato funziona per me. – chakrit