Pregunta: | 34208 - INFORMACIÓN ACERCA DE LA IMPLEMENTACIÓN DE ARBOLES |
Autor: | marcia vejar l. |
necesito saber como funcionan, como se trabaja con arboles en pascal.
agradeceria cualquier informacion |
Respuesta: | Patricio Lara B |
Marcia :
Lo primero que debes tienes que tener claro es que en Pascal, todo lo que sea listas, pilas, colas y árboles son un Tipo Abstracto de Datos. Bajo esa perspectiva nada mas tienes que imaginar una caja que tiene al menos 2 cosas dentro : un dato (de cualquier tipo) y una dirección (conocido también como puntero). La idea de todo esto es asignar una dirección de memoria cualquiera a través del comando L:=nil asegurando ese espacio para comenzar a trabajar, y después ir creando de a una las casillas, cajas o nodos, e ir enlazandolos en forma seguida a esta dirección. El cuento te queda mas o menos así : L -> dato//direc -> dato//direc -> dato//direc-> nil Entonces se dira que esta lista L tiene 3 datos, donde L apunta al primero y el último apunta a nil (vacío o fin de lista). Con esta información, pasamos a los árboles, que no son otra cosa que casillas (o cajas o nodos) RECURSIVAS con dos direcciones cada una. Entonces, cada nodo tiene 3 elementos: Izq , Der, Dato y por ende cada apuntador o puntero señalará a otra casilla de las mismas características. Para recorrer los árboles (insertar, leer o eliminar) existen 3 formas de hacerlo : 1.- INORDEN cuya lectura es IZQ DATO DER 2.- PREORDEN cuya lectura es DATO IZQ DER 3.- POSORDEN cuya lectura es ..... IZQ DER DATO bien!! Finalmente, al decir recursivo, me refiero a que el algoritmo o módulo de lectura se aplica sobre cada nodo hasta llegar a todos. Si por ejemplo vas a recorrer un arbol de 3 niveles completos ( 7 nodos en total) trataré de hacerte el dibujo...... Nivel 1 (izq// A \\ der) / \ / \ / \ Nivel 2 (izq// B \\ der) (izq// C \\ der) / \ / \ / \ / \ / \ / \ Nivel 3 (izq// D \\ der) (izq// E \\ der) (izq// F \\ der) (izq// G \\ der) ufffff!!!!!!!!!!!!! eso fué una lata!!!! Bien... En INORDEN queda D B E A F C G (IZQ DATO DER) En PREORDEN queda A B D E C F G (DATO IZQ DER) En POSTORDEN queda D E B F G C A (IZQ DER DATO) Es un poco complicado al inicio, pero con calma las cosas salen... por ahí debo tener algún programita antiguo... si llegaras a necesitarlo... avísame ya??? Con atención Patricio Lara (Santiago, Chile) [email protected] [email protected] [email protected] |