You are on page 1of 32

Conceptos de rbol

Orden: es el nmero potencial de hijos que puede tener cada elemento de rbol. De este modo, diremos que un rbol en el que cada nodo puede apuntar a otros dos es de orden dos, si puede apuntar a tres ser de orden tres, etc. Grado: el nmero de hijos que tiene el elemento con ms hijos dentro del rbol. En el rbol del ejemplo, el grado es tres, ya que tanto 'A' como 'D' tienen tres hijos, y no existen elementos con ms de tres hijos. Nivel: se define para cada elemento del rbol como la distancia a la raz, medida en nodos. El nivel de la raz es cero y el de sus hijos uno. As sucesivamente. En el ejemplo, el nodo 'D' tiene nivel 1, el nodo 'G' tiene nivel 2, y el nodo 'N', nivel 3. Altura: la altura de un rbol se define como el nivel del nodo de mayor nivel. Como cada nodo de un rbol puede considerarse a su vez como la raz de un rbol, tambin podemos hablar de altura de ramas. El rbol del ejemplo tiene altura 3, la rama 'B' tiene altura 2, la rama 'G' tiene altura 1, la 'H' cero, etc.

CONVERSIN DE RBOLES BINARIOS

Los pasos que se deben aplicar para lograr la conversin del rbol general son los siguientes: 1. Enlazar los hijos de cada nodo en forma horizontal (los hermanos). 2. Enlazar en forma vertical el nodo padre con el hijo que se encuentra ms a la izquierda. Adems, debe eliminarse el vnculo de ese padre con el resto de sus hijos. 3. Rotar el diagrama resultante, aproximadamente 45 hacia la izquierda, y as se obtendr el rbol binario correspondiente.

CONVERSIN DE RBOLES BINARIOS

3. Rotar el diagrama resultante, aproximadamente 45 hacia la izquierda, y as se obtendr el rbol binario correspondiente.

Conversin de un bosque en un rbol binario


Un bosque representa un conjunto normalmente ordenado de uno o ms rboles generales.

Los pasos que deben aplicarse para lograr la conversin del bosque a un rbol binario son los siguientes: 1. Enlazar en forma horizontal las races de los distintos rboles generales. 2. Enlazar los hijos de cada nodo en forma horizontal (los hermanos). 3. Enlazar en forma vertical el nodo padre con el hijo que se encuentra ms a la izquierda. Adems, se debe eliminar el vnculo del padre con el resto de sus hijos. 4. Rotar el diagrama resultante, aproximadamente 45 hacia la izquierda y as obtendr el rbol binario correspondiente.

Conversin de un bosque en un rbol binario


Un bosque representa un conjunto normalmente ordenado de uno o ms rboles generales.

Los pasos que deben aplicarse para lograr la conversin del bosque a un rbol binario son los siguientes: 1. Enlazar en forma horizontal las races de los distintos rboles generales. 2. Enlazar los hijos de cada nodo en forma horizontal (los hermanos). 3. Enlazar en forma vertical el nodo padre con el hijo que se encuentra ms a la izquierda. Adems, se debe eliminar el vnculo del padre con el resto de sus hijos. 4. Rotar el diagrama resultante, aproximadamente 45 hacia la izquierda y as obtendr el rbol binario correspondiente.

rbol binario luego de aplicar los pasos 1, 2 y 3.

rbol binario luego de aplicar el paso 4

El nodo tpico de un rbol

RECORRIDO DE UN RBOL BINARIO


a) Recorrido en preorden. Visitar la raz. Recorrer el subrbol izquierdo. Recorrer el subrbol derecho. b) Recorrido en inorden. Recorrer el subrbol izquierdo. Visitar la raz. Recorrer el subrbol derecho. c) Recorrido en postorden. Recorrer el subrbol izquierdo. Recorrer el subrbol derecho. Visitar la raz. PREORDEN: A B D G K

CEHI FJ INORDEN: G K D B A H E I C F J POSTODEN: K G D B H I E J F C A

ALGORITMO PREORDEN
En este tipo de recorrido, el valor del nodo se procesa antes de recorrer las ramas: R-I-D

Preorden: 20 - 12 - 5 - 2 - 7 - 13 - 15 - 40 - 30 - 35 - 47

ALGORITMO INORDEN
En este tipo de recorrido, el valor del nodo se procesa despus de recorrer la primera rama y antes de recorrer la ltima: I-R-D
void InOrden(Arbol a) { if(a == NULL) return; RecorrerArbol(a->rama[0]); Procesar(dato); RecorrerArbol(a->rama[1]); RecorrerArbol(a->rama[2]); }

Orden central: 2 - 5 - 7 - 12 - 13 - 15 - 20 - 30 - 35 - 40 - 47

ALGORITMO POSTORDEN
En este tipo de recorrido, el valor del nodo se procesa despus de recorrer todas las ramas: I-D-R

Postorden: 2 - 7 - 5 - 15 - 13 - 12 - 35 - 30 - 47 - 40 - 20

En preorden: R-I-D En entreorden: I-R-D En postorden: I-D-R

En preorden: 14, 4, 3, 9, 7, 5, 15, 18, 16, 17, 20: R-I-D En entreorden: 3, 4, 5, 7, 9, 14, 15, 16, 17, 18, 20: I-R-D En postorden: 3, 5, 7, 9, 4, 17, 16, 20, 18, 15, 14: I-D-R

rboles binarios de bsqueda (ABB):


Se trata de rboles de orden 2 en los que se cumple que para cada nodo, el valor de la clave de la raz del subrbol izquierdo es menor que el valor de la clave del nodo y que el valor de la clave raz del subrbol derecho es mayor que el valor de la clave del nodo.

Ingreso de Datos: rboles binarios de bsqueda (ABB)


12

10

19

11

15

27

12, 19, 10, 15, 27, 11, 7

Ingreso de Datos.bis
11

15

10

12

19

27

11, 7, 10, 15, 12, 19, 27

Ingreso de Datos
12 10 19

07

11

27

28

30

12, 10, 11, 07, 19, 27, 28, 30

Un rbol AVL (llamado as por las inciales de sus inventores: Adelson-Velskii y Landis) es un rbol binario de bsqueda en el que para cada nodo, las alturas de sus subrboles izquierdo y derecho no difieren en ms de 1.

RBOLES BALANCEADOS O EQUILIBRADOS

FACTOR DE EQUILIBRIO

REESTRUCTURACIN DEL RBOL BALANCEADO (ROTACIN)

CONVERSIN DE RBOLES BINARIOS

Eliminar nodos en un rbol:


El proceso sera el siguiente: Buscar el nodo padre del que queremos eliminar. Buscar el puntero del nodo padre que apunta al nodo que queremos borrar. Liberar el nodo. padre->nodo[i] = NULL;.

Cuando el nodo a borrar no sea un nodo hoja, diremos que hacemos una "poda", El procedimiento es similar al de borrado de un nodo: Buscar el nodo padre del que queremos eliminar. Buscar el puntero del nodo padre que apunta al nodo que queremos borrar. Podar el rbol cuyo padre es nodo. padre->nodo[i] = NULL;.

En el rbol del ejemplo, para podar la rama 'B', recorreremos el subrbol 'B' en postorden, eliminando cada nodo cuando se procese, de este modo no perdemos los punteros a las ramas apuntadas por cada nodo, ya que esas ramas se borrarn antes de eliminar el nodo. De modo que el orden en que se borrarn los nodos ser: KEFyB

APLICACIONES DE REDES
Las aplicaciones ms importantes de los grafos son los siguientes: Rutas entre ciudades. Determinar tiempos mximos y mnimos en un proceso. Flujo y control en un programa. Las aplicaciones de modelos de redes se dan en los siguientes contextos: Redes telefnicas y de comunicacin de datos. Redes de transporte. Arquitectura de computadoras. Redes de energa elctrica. Sistemas de comando y control. Los principales problemas a resolver en el anlisis y el diseo de redes son: 1. Dado un conjunto de nodos que se desean comunicar entres s, obtener una red ptima en algn sentid (por ejemplo, obtener la mxima cantidad posible de caminos distintos entre pares de nodos), sujeto a determinadas restricciones (por ejemplo, costo de conexin entre pares de nodos). 2. Dada una red, evaluar de algn modo su confiabilidad (en el sentido de la comunicacin entre nodos). Al trabajar con nodos y conexiones entre nodos, para la construccin de un modelo formal se utilizan grafos.

RBOLES ORDENADOS:
Un rbol ordenado, en general, es aquel a partir del cual se puede obtener una secuencia ordenada siguiendo uno de los recorridos posibles del rbol: inorden, preorden o postorden. En estos rboles es importante que la secuencia se mantenga ordenada aunque se aadan o se eliminen nodos. Existen varios tipos de rboles ordenados, que veremos a continuacin: RBOLES BINARIOS DE BSQUEDA (ABB): son rboles de orden 2 que mantienen una secuencia ordenada si se recorren en inorden. RBOLES AVL: son rboles binarios de bsqueda equilibrados, es decir, los niveles de cada rama para cualquier nodo no difieren en ms de 1. rboles perfectamente equilibrados: son rboles binarios de bsqueda en los que el nmero de nodos de cada rama para cualquier nodo no difieren en ms de 1. Son por lo tanto rboles AVL tambin. rboles 2-3: son rboles de orden 3, que contienen dos claves en cada nodo y que estn tambin equilibrados. Tambin generan secuencias ordenadas al recorrerlos en inorden. rboles-B: caso general de rboles 2-3, que para un orden M, contienen M-1 claves.