You are on page 1of 8

rboles Binarios

El concepto de rbol implica una estructura en la que lo datos se organizan de modo que los elementos de informacin estn organizados entre s a travs de ramas. Un rbol consta de un conjunto finito de elementos, denominados nodos, y un conjunto finito de lneas dirigidas, denominadas ramas, que conectan los nodos. El nmero de ramas asociado con un nodo es el grado del nodo Si el rbol no est vaco entonces el primer Nodo se llama Raz El nivel de un nodo es su distancia a la raz Nodos Nodo Padre de un nodo N es aquel que apunta al mismo. En un rbol cada nodo slo puede tener un padre. En el siguiente ejemplo, A es el padre de B y C, y a su vez, B es el padre de D. Nodo Hijo de otro nodo A es cualquier nodo apuntado por el nodo A. Un nodo puede tener varios hijos. En el ejemplo, B y C son los nodos hijos de A y todos Los nodos tienen uno o dos hijos. Nodo Raz es el nico del rbol que no tiene padre. En la representacin que se utiliza, el nodo raz es el que se encuentra en la parte superior del rbol: A Hojas son todos los nodos que no tienen hijos. En la representacin del ejemplo son hojas los nodos situados en la parte inferior: D, G, H y F. Nodos Interiores son los nodos que no son ni el nodo raz, ni nodos hoja. En el ejemplo, son nodos interiores B, C y E. Camino es una secuencia de nodos, en el que dos nodos consecutivos cualesquiera son padre e hijo. En el ejemplo A-B-D es un camino, al igual que E-G y C-E-H. Rama es un camino desde el nodo raz a una hoja. En el ejemplo, A-C-E-G y AC-F son ramas. Grado es el nmero mximo de hijos que tienen los nodos del rbol. As, en el Ejemplo anterior el rbol es de grado dos.

Implementaciones del rbol binario Al igual que ocurre en el caso de las listas, se puede implementar un rbol binario mediante estructuras estticas o mediante estructuras dinmicas. En ambos casos, cada nodo del rbol contendr tres valores:

La informacin contenida en el nodo. Un enlace al hijo derecho (raz del subrbol derecho) Un enlace al hijo izquierdo (raz del subrbol izquierdo)

Recorrido de un rbol binario Recorrer un rbol consiste en acceder una sola vez a todos los nodos, permite por ejemplo, imprimir toda la informacin o si, tenemos un rbol con tipo base numrica, sumar todos sus valores Un rbol se puede recorrer por 3 formas: Pre Orden Postor den Engorden Cabe recordar que un rbol siempre se recorre por el sub rbol izquierdo y enseguida el subrbol derecho. Recorrido Preorden 1.- Visitar el nodo raz 2.- recorrer el subrbol izquierdo 3.-recorrer el subrbol derecho

InOrden 1.- Primero se accede a la informacin del subrbol izquierdo 2.-Segundo visitar la informacin de la raz 3.-recorrer el sub rbol derecho

PostOrden 1.- recorrer el subrbol izquierdo 2.- recorrer el subrbol derecho 3.-visitar la informacin del nodo raz

Preorden: A, B, D, E, C, F, G Inorden: D, B, E, A, F, C, G Postorden: D, E, B, F, G, C, A

rboles Binarios de bsqueda Un rbol binario es una estructura de datos de tipo rbol binario en el que para todos sus nodos, el hijo izquierdo, si existe, contiene un valor menor que el nodo padre y el hijo derecho, si existe, contiene un nodo mayor que el padre Bsqueda: La operacin de bsqueda es un rbol de bsqueda es bastante sencilla de entender Suponer que se busca un elemento x en el rbol. Lo primero que haremos ser comprobar si se encuentra en el nodo raz. Si no es as, si el elemento buscado es menor que el contenido en el nodo raz sabemos que se encuentra en el subrbol izquierdo de lo contrario si el elemento es mayor que la raz estara en el subrbol derecho. Para continuar la bsqueda en un subrbol se aplican los mismos pasos Algoritmo para buscar en un rbol: 1.- si el valor del nodo actual es igual al valor buscado, lo hemos encontrado

2.- si el buscado es menor que el nodo raz buscaremos en el subrbol izquierdo 3.- si el valor buscado es mayor que el nodo raz buscaremos en el subrbol derecho. Insercin en un rbol binario: 1.- creacin de nuevo nodo 2.- si inicio est vaco el nodo nuevo es el inicio Sino 3.-comparar el nuevo nodo con raz si es menor se insertara en subrbol izquierdo Si no 4.-comparar el nuevo nodo con raz si es mayor se insertara en el subrbol derecho

A continuacin explicaremos grficamente: 1.-Si raz = vaco, el nuevo nodo (que es 5) es la raz del rbol

2.-Se va a insertar el dato 9 comparamos la informacin con la raz, 9 es mayor que 5, se inserta en el subrbol derecho. 3.- se va a insertar el dato 3 comparamos la informacin con la de la raz, 3 es menor que 5, se inserta en el subrbol izquierdo. 3.- insertar el 7 comparamos con la raz, 7 como es mayor que 5, avanzamos al subrbol derecho y comparamos con el hijo 7 es menor que 9 se inserta en el nodo izquierdo 4.- insertar el 8 comparamos con la raz, 8 es mayor que 5, avanzamos al subrbol derecho y comparamos con el hijo, 9 es mayor que 8, comparamos con el hijo 7 es menor que 8 se inserta de lado derecho 5.- insertar el 12 comparamos con la raz, 5 es menor que 12, avanzamos al subrbol derecho y comparamos con el hijo, 9 es menor que 12 se inserta de lado derecho. 6.- insertar 6, comparamos con la raz 5 es menor que 6, avanzamos subrbol derecho, comparamos con hijo, 9 es mayor que 6, avanzamos subrbol izquierda, comparamos con hijo, 6 es menor que 7 se inserta del lado izquierdo.

Eliminar Existen 4 precauciones a tomar: 1.-intentar eliminar un nodo que no existe No se hace nada regresar false, 0, no existe nodo etc. (dependiendo de la funcin programador) 2.- Eliminar un Nodo hoja Se borra el nodo y se actualiza el apuntador del nodo padre a null 3.- eliminar un nodo con un solo hijo El nodo hijo se convierte en el padre 4 - Eliminar un nodo con dos hijos Caso complejo Es necesario mover ms de una referencia. Se busca el mximo de la rama izquierda o el mnimo de la rama derecha Ejemplos de eliminacin grficamente: A) Si el nodo no a borrar no tiene hijos, simplemente se libera el espacio en memoria. B) Si el nodo a borrar tiene un solo hijo, se aade como hijo de su padre (p), sustituyendo la posicin ocupada por el nodo borrado

C) Si el nodo a borrar tiene los dos hijos se siguiente los siguientes pasos: 1.- se busca el mximo de la rama izquierda o el mnimo de la rama derecha 2.- se sustituye el nodo a borrar por el nodo encontrado. Ejemplos de borrado grficamente:

Eliminar Nodo con hijos

You might also like