Anda di halaman 1dari 12

ndice

Resumen Pgina 3 IntroduccinPgina 4 Desarrollo del Tema..Pgina 5 Arboles Binarios.... Pgina 5 Arboles de Dispersin.. Pgina 5 Construccin de Arboles.. Pgina 6 Recorrido de un rbol.. Pgina 7 Aplicaciones de Arboles Binarios.. Pgina 10 rbol binario y su busqueda Pgina 10 Bibliografa. Pgina 12 Anexo. Pgina 13

Pgina N2

Resumen
Un rbol binario es una estructura de datos en la cual cada nodo siempre tiene un hijo izquierdo y un hijo derecho. No pueden tener ms de dos hijos (de ah el nombre "binario").

Pgina N3

Introduccin
Segn la Enciclopedia Libre Wikipedia:
Un rbol binario es una estructura de datos en la cual cada nodo siempre tiene un hijo izquierdo y un hijo derecho. No pueden tener ms de dos hijos (de ah el nombre "binario"). Si algn hijo tiene como referencia a null, es decir que no almacena ningn dato, entonces este es llamado un nodo externo. En el caso contrario el hijo es llamado un nodo interno.1

Con la definicin de esto se puede comenzar a trabajar con un cdigo como los pedidos en clase, los cuales, van a trabajar con los arboles binarios y sus distintas caractersticas, ya sea en orden, aplicaciones y bsquedas, logrando con esto realizar de manera efectiva la tarea dada en clase de Estructura de Datos.

1 Fuente: es.wikipedia.org/wiki/rbol_binario
Pgina N4

rbol binario
Se define un rbol binario como un conjunto finito de elementos (nodos) que bien esta vaco o esta formado por una raz con dos arboles binarios disjuntos, es decir, dos descendientes directos llamados subarbol izquierdo y subarbol derecho. Los rboles binarios (tambin llamados de grado 2) tienen una especial importancia. Las aplicaciones de los arboles binarios son muy variadas ya que se les puede utilizar para representar una estructura en la cual es posible tomar decisiones con dos opciones en distintos puntos. El rbol Binario es Vaci si no tiene ningn elemento en el. El rbol Binario contiene un Nodo Raz y los dos que parten de l, llamados Nodo Izquierdo y Nodo Derecho. Los rboles tiene 3 Recorridos Diferentes los cuales son: Pre-Orden In-Orden Post-Orden rbol binario de dispersin Los rboles binarios de bsqueda tienen un gran inconveniente. Por ejemplo, supongamos que creamos un ABB a partir de una lista de valores ordenada: 2, 4, 5, 8, 9, 12. Difcilmente podremos llamar a la estructura resultante un rbol:

Pgina N5

Esto es lo que llamamos un rbol binario de bsqueda degenerado, y en el siguiente captulo veremos una nueva estructura, el rbol AVL, que resuelve este problema, generando rboles de bsqueda equilibrados.

Construccin de un rbol binario


Hasta el momento se ha visto la declaracin y recorrido de un rbol binario. Sin embargo no se ha estudiado ningn mtodo para crearlos. A continuacin se estudia un mtodo para crear un rbol binario que no tenga claves repetidas partiendo de su recorrido en preorden e inorden, almacenados en sendos arrays. Antes de explicarlo se recomienda al lector que lo intente hacer por su cuenta, es sencillo cuando uno es capaz de construir el rbol viendo sus recorridos pero sin haber visto el rbol terminado. Partiendo de los recorridos preorden e inorden del rbol de la figura 1 puede determinarse que la raz es el primer elemento del recorrido en preorden. Ese elemento se busca en el array inorden. Los elementos en el array inorden entre izq y la raz forman el subrbol izquierdo. Asimismo los elementos entre dery la raz forman el subrbol derecho. Por tanto se tiene este rbol:

Pgina N6

A continuacin comienza un proceso recursivo. Se procede a crear el subrbol izquierdo, cuyo tamao est limitado por los ndices izq y der. La siguiente posicin en el recorrido en preorden es la raz de este subrbol. Queda esto:

El subrbol b tiene un subrbol derecho, que no tiene ningn descendiente, tal y como indican los ndices izq y der. Se ha obtenido el subrbol izquierdo completo de la raz a, puesto que b no tiene subrbol izquierdo:

Despus seguir construyndose el subrbol derecho a partir de la raz a. La implementacin de la construccin de un rbol partiendo de los recorridos en preorden y en inorden puede consultarse aqu (en C).

Recorrido de un rbol binario


Los rboles tiene 3 Recorridos Diferentes los cuales son: Pre-Orden, In-Orden, Post-Orden

Pgina N7

Pre-Orden El Recorrido Pre-Orden lo recorre de la siguiente manera, viaje a travs del rbol Binario desplegando el Contenido en la Raz, despus viaje a travs del Nodo Izquierdo y despus a travs del Nodo Derecho. Detalle: Temp toma el Valor de la Raz y compara si el rbol tiene algn Elemento, de otra manera Desplegara rbol Vaci y terminara el mtodo. Si el rbol tiene elementos dentro de l, lo recorrer y viajara a travs de los Arreglos Izq y Der para determinar que valor meter en la Pila y en Temp para de esta manera imprimir el siguiente Elemento correspondiente. Algoritmo: PreOrd(Arbol, Der, Izq, Pila, Raiz) Temp Raiz Top Pila[Top] Nulo Si Raiz = Nulo Imprimir rbol Vaci y Salir Repetir mientras Temp Nulo Imprimir Arbol[Temp] Si Der[Temp] Nulo Top Top + 1 Pila[Top] Der[Temp] Si Izq[Temp] Nulo Temp Izq[Temp] Si no: Temp Pila[Top]; Top Top - 1 Fin del ciclo Salir In-Orden El Recorrido In-Orden lo recorre de la siguiente manera, viaje a travs del rbol Binario desplegando el Contenido en el Nodo Izquierdo despus la Raz y finalmente viaja a travs del Nodo Derecho. Detalle: Temp toma el Valor de la Raz y compara si el rbol tiene algn Elemento, de otra manera Desplegara rbol Vaci y terminara el mtodo. Si el rbol tiene elementos dentrode l, lo recorrer y viajara a travs de los Arreglos Izq y Der para determinar que valor meter en la Pila y en Temp para de esta manera imprimir el siguiente Elemento correspondiente. Algoritmo: PreOrd(Arbol, Der, Izq, Pila, Raiz) Temp Raiz Top
Pgina N8

Pila[Top] Nulo Si Raiz = Nulo Imprmir Arbol Vacio y Salir Etiqueta: Mientras Temp Nulo Top Top + 1 Pila[Top] Temp Temp Izq[Temp] Fin del ciclo Temp Pila[Top] Top Top - 1 Mientras Temp Nulo Imprimir Arbol[Temp] Si Der[Temp] Nulo Temp Der[Temp] Ir a Etiqueta Temp Pila[Top] Top Top - 1 Fin del ciclo Salir Post-Orden El Recorrido Post-Orden lo recorre de la siguiente manera, viaje a travs del rbol Binario desplegando el Contenido en el Nodo Izquierdo despus el Nodo Derecho y finalmente viaja a travs de la Raiz. Detalle: Temp toma el Valor de la Raz y compara si el rbol tiene algn Elemento, de otra manera Desplegara rbol Vaci y terminara el mtodo. Si el rbol tiene elementos dentrode l, lo recorrer y viajara a travs de los Arreglos Izq y Der para determinar que valor meter en la Pila y en Temp para de esta manera imprimir el siguiente Elemento correspondiente. Algoritmo: PostOrd(Arbol, Der, Izq, Pila, Raiz) Temp Raiz Top Pila[Top] Nulo Si Raiz = Nulo Imprimir Arbol Vacio y Salir Etiqueta: Mientras Temp Nulo Top Top + 1 Pila[Top] Temp Si Der[Temp] Nulo Top Top + 1 Pila[Top] - (Der[Temp])
Pgina N9

Temp Izq[Temp] Temp Pila[Top] Top Top - 1 Fin del ciclo Mientras Temp 0 Imprimir Arbol[Temp] Si Arbol[Temp] = Info[Raiz] Salir Temp Pila[Top] Top Top - 1 Fin del ciclo Si Temp < 0 Temp = -(Temp) Ir a Etiqueta Salir Aplicaciones de Arboles binarios Un ejemplo de la utilizacin de rboles binarios de bsqueda son los diccionarios. A partir de una palabra, se realiza una bsqueda en el rbol para saber si est incluida en el conjunto, y si existe, se obtienen sus datos asociados (por ejemplo, si es un verbo, un sustantivo, un artculo, etc.). En Teora de Compiladores, durante la fase de anlisis del cdigo fuente, los analizadores lxico, sintctico y semntico utilizan tablas de smbolos, en donde se almacenan las palabras clave y las palabras reservadas y sus atributos, implementadas (por lo general) como rboles binarios de bsqueda. En sntesis, se utiliza un rbol binario de bsqueda cuando se desea almacenar en una estructura de datos cierta informacin, a la cual luego se desea acceder en forma rpida a partir de una clave.

rbol binario de busqueda


Un rbol binario de bsqueda es un tipo particular de rbol binario, definido de la siguiente forma: Todo rbol vaco es un rbol binario de bsqueda. Un rbol binario no vaco, de raz R, es un rbol binario de bsqueda si: En caso de tener subrbol izquierdo, la raz R debe ser mayor que el valor mximo almacenado en el subrbol izquierdo, y que el subrbol izquierdo sea un rbol binario de bsqueda. En caso de tener subrbol derecho, la raz R debe ser menor que el valor mnimo almacenado en el subrbol derecho, y que el subrbol derecho sea un rbol binario de bsqueda.
Pgina N10

Para una fcil comprensin queda resumido en que es un rbol binario que cumple que el subrbol izquierdo de cualquier nodo (si no est vaco) contiene valores menores que el que contiene dicho nodo, y el subrbol derecho (si no est vaco) contiene valores mayores. Para estas definiciones se considera que hay una relacin de orden establecida entre los elementos de los nodos. Que cierta relacin est definida, o no, depende de cada lenguaje de programacin. De aqu se deduce que puede haber distintos rboles binarios de bsqueda para un mismo conjunto de elementos. El inters de los rboles binarios de bsqueda (ABB) radica en que su recorrido en inorden proporciona los elementos ordenados de forma ascendente y en que la bsqueda de algn elemento suele ser muy eficiente. Dependiendo de las necesidades del usuario que trate con una estructura de este tipo se podr permitir la igualdad estricta en alguno, en ninguno o en ambos de los subrboles que penden de la raz. Permitir el uso de la igualdad provoca la aparicin de valores dobles y hace la bsqueda ms compleja.

Pgina N11

Bibliografa
Enciclopedia Libre Wikipedia rbol Binario, rbol Binario de Bsqueda C++ con Clase rbol Binario, rbol de Dispersin, Recorrido de un rbol Binario Programacin Fcil rbol Binario, Construccin de un rbol Binario

Pgina N12

Anexos
A continuacin, se adjuntan al informe escrito, los cdigos desarrollados por el grupo.

Pgina N13

Anda mungkin juga menyukai