2010-10-01 15 views
6

Estoy tratando de construir un Trie pero en un teléfono móvil que tiene una capacidad de memoria muy limitada.¿Trie basado en disco?

Me di cuenta de que probablemente sea mejor que toda la estructura se almacene en el disco y solo se cargue como sea necesario, ya que puedo tolerar algunas lecturas de disco. Pero, después de algunos intentos, parece que esto es algo muy complicado de hacer.

¿Cuáles son algunas maneras de almacenar un Trie en el disco (es decir, solo parcialmente cargado) y mantener la propiedad de búsqueda rápida?
¿Es esta una buena idea para empezar?

+1

Me gustaría buscar un B-tree en lugar de un trie en esta situación, pero me gustaría saber la respuesta a esta pregunta también. – zwol

+0

Las pruebas son estructuras para permitir una búsqueda rápida. Esto parece un buen caso de uso para algún motor de base de datos incrustado, como SQLite, o algún derivado de http://en.wikipedia.org/wiki/Dbm – permeakra

Respuesta

4

El documento B-tries for disk-based string management responde a su pregunta.

Se hace la observación:

Para nuestro conocimiento, no se cuenta aún con una propuesta en la literatura para una estructura de datos basada en trie , tales como el trie ráfaga, la pueden residir de manera eficiente en el disco para admitir tareas comunes de procesamiento de cadenas.

+1

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

+0

el papel está abajo :( – bgs

+0

@bgs el enlace RichardOD publicado está trabajando para mí. – chakrit