Arboles


#1

hola hola!!

Una pregunta conceptual… he de recuperar el contenido de un sistema de
ficheros tipo UNIX de un servidor FTP a partir de la raiz publica del
servidor en profundidad hasta el final. Lo tengo que guardar en un TAD
tipo árbol en local. He de poder guardar los directorios y ficheros
teniendo un apuntador para saber en cada momento en dónde estoy y por qué
nodos he pasado a la hora de hacer el tratamiento del árbol. Mi pregunta
es que para este tipo de estructuras, ¿qué tipo de árbol es el
másadecuado? He estado buscando y de las decenas de tipos de árboles no me
aclaro…

Gracias por adelantado.

Saludos!


#2

Hector, tengo la impresion de que estas preocupandote demasiado sobre
optimizacion de estructuras de datos (me atreveria a apostar que
estas en la universidad, tomando una clase de estructuras de datos).

En lenguages dinamicos como Ruby, solo dispones de una herramienta:
apuntadores a objetos. Los apuntadores en si no ocupan casi espacio.
Son los objetos mismos los que ocupan memoria considerable
(relativamente).

La solucion simple es tener un atributo “padre” y un arreglo de
“hijos” para cada elemento del arbol.

La solucion compleja incluiria algo similar a eso, pero ademas
permitiria accesar el arbol sin tener que cargarlo todo en memoria.
Podrias hacer esto guardando la informacion en ficheros, o en una
base de datos o cualquier otro mecanismo de almacenamiento persistente.

Pero en el fondo, la estructura de arbol es la misma. Apuntadores al
padre y a cada hijo.

Cualquier optimizacion adicional es irrelevante en el contexto de un
lenguage dinamico como Ruby.