Вы находитесь на странице: 1из 7

Desarrollo

Arboles Binarios
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. Usos comunes de los rboles binarios son los rboles binarios de bsqueda, los montculos binarios.

Balance
Si en cada nodo se define el concepto de "Balance" como la diferencia entre la altura del subrbol derecho menos la altura del subrbol izquierdo: Balance = hD - hI Los valores posibles de balance pueden ser: Balance = 1 implica que altura subrbol derecho mayor que altura subrbol izquierdo. Balance = 0 implica que las alturas de los dos subrboles son iguales. Balance = -1 implica que la altura subrbol izquierdo es mayor que altura subrbol derecho. Altura Es el nivel mximo de las hojas de un rbol binario.

Balanceo de Arboles Binarios


Un rbol binario balanceado es un rbol en el cual las alturas de los dos sudarboles de todo nodo difieren a lo sumo en 1. El balance de un nodo en un rbol binario se define como la altura de su subrbol izquierdo menos la altura de su subrbol derecho. Cada nodo en un rbol binario balanceado tiene balance igual a 1, -1 o 0, dependiendo si la altura de su subrbol izquierdo es mayor que, menor que o igual a la altura de su subrbol derecho. La bsqueda ms eficiente se efecta en un rbol binario balanceado. Desafortunadamente, la funcin insertar no asegura que el rbol permanezca balanceado, el grado de balance depende del orden en que son insertados los nodos en el rbol. La altura de un rbol binario es el nivel mximo de sus hojas (profundidad). La altura del rbol nulo se define como -1.

Para definir si un rbol esta equilibrado, se calcula su factor de equilibrio, el factor de equilibrio de un rbol binario es la diferencia en la altura entre los sudarboles izquierdo y derecho. Si definimos la altura del subrbol izquierdo como H1 y la altura del subrbol derecho como H2, entonces el factor equilibrio del rbol B se determina por la siguiente formula: B=H1 H2 La altura mxima de un rbol de bsqueda binaria balanceado es de 1.44log2n, de manera que una bsqueda en un rbol as nunca requiere ms de 44% de comparaciones que las necesarias en un rbol balanceado de manera completa. En la practica los arboles de bsqueda binaria balanceados se comportan aun mejor, produciendo tiempos de bsqueda del orden de de log2n +0.25 para valores grandes de n. Los arboles balanceados tambin pueden usarse para una implantacin eficiente de colas de prioridad. La insercin de un nuevo elemento requiere a lo sumo 0(log n), pasos para encontrar la posicin adecuada y 0(1) pasos para accesar a el elemento siguiendo los apuntadores izquierdos hasta la hoja de la extrema izquierda.

Rotaciones El reequilibrado se produce de abajo hacia arriba sobre los nodos en los que se produce el desequilibrio. Pueden darse dos casos: rotacin simple o rotacin doble; a su vez ambos casos pueden ser hacia la derecha o hacia la izquierda. Rotacin simple a la derecha. De un rbol de raz (r) y de hijos izquierdo (i) y derecho (d), lo que haremos ser formar un nuevo rbol cuya raz sea la raz del hijo izquierdo, como hijo izquierdo colocamos el hijo izquierdo de i (nuestro i) y como hijo derecho construimos un nuevo rbol que tendr como raz, la raz del rbol (r), el hijo derecho de i (d) ser el hijo izquierdo y el hijo derecho ser el hijo derecho del rbol (d).

Rotacin simple a la izquierda. De un rbol de raz (r) y de hijos izquierdo (i) y derecho (d), consiste en formar un nuevo rbol cuya raz sea la raz del hijo derecho, como hijo derecho colocamos el hijo derecho de d (nuestro d) y como hijo izquierdo construimos un nuevo rbol que tendr como raz la raz del rbol (r), el hijo izquierdo de d ser el hijo derecho (i) y el hijo izquierdo ser el hijo izquierdo del rbol (i). Precondicin: Tiene que tener hijo derecho no vaco.

Rotacin doble a la derecha

Rotacin doble a la izquierda

Ejemplo de rbol perfectamente balanceado.

Arboles multicamino
Un rbol multicamino es un rbol ordenado cuyos nodos deben tener un nmero especfico de hijos. En este tipo de rbol conviene definir nodos externos especiales que no tienen hijos, y normalmente no tienen ni nombre ni informacin asociada. Los nodos externos actan como nodos ficticios para los nodos que no tienen el nmero de hijos especificados. Un ejemplo de rboles multicamino son los rboles binarios. Un rbol multicamino posee un grado g mayor a dos, donde cada nodo de informacin del rbol tiene un mximo de g hijos. Sea un rbol de m-caminos A, es un rbol m-caminos si y solo si:
y y

A est vaco Cada nodo de A muestra la siguiente estructura: [nClaves,Enlace0,Clave1,...,ClavenClaves,EnlacenClaves] nClaves es el nmero de valores de clave de un nodo, pudiendo ser: 0 <= nClaves <= g-1 Enlacei, son los enlaces a los subrboles de A, pudiendo ser: 0 <= i <= nClaves Clavei, son los valores de clave, pudiendo ser: 1 <= i <= nClaves

y y y

Clavei < Clavei+1 Cada valor de clave en el subrbol Enlacei es menor que el valor de Clavei+1 Los subrboles Enlacei, donde 0 <= i <= nClaves, son tambin rboles m-caminos.

Existen muchas aplicaciones en las que el volumen de la informacin es tal, que los datos no caben en la memoria principal y es necesario almacenarlos, organizados en archivos, en dispositivos de almacenamiento secundario. Esta organizacin de archivos debe ser suficientemente adecuada como para recuperar los datos del mismo en forma eficiente. Los arboles generales quedan representados por arboles binarios de manera que el hijo izquerdo es el hijo mas a la izquierda y el hijo derecho es el siguiente hermano hacia la derecha. Aqu se establecern los mecanismos necesarios para convertir un rbol general en un rbol binario. Los pasos se debern aplicar para lograr la conversin del rbol general al rbol binario son los siguientes: 1. Deben enlazarse los hijos de cada nodo en forma horizontal (los hermanos). 2. Deben enlazarse en forma vertical el nodo padre con el hijo que se encuentra ms a la izquierda. Adems, debe eliminarse el vinculo de ese padre con el resto de sus hijos.

3. Deben rotarse el diagrama resultante, aproximadamente 45 grados hacia la izquierda, y asi se obtendr el rbol binario multicamino correspondiente. Ejemplo:

Implementacin de arboles multicamino en listas enlazadas

Aplicaciones Muy utilizados en la construccin y mantenimiento de rboles de bsqueda con: y Gran cantidad de nodos guardados en memoria secundaria en los que se realizan con frecuencia inserciones y supresiones.

Idea bsica y y y y Un rbol se subdivide en subrboles. Cada subrbol se representa como unidades a las que se accede simultneamente y reciben el nombre de pginas. Cada acceso a pgina requiere un nico acceso a memoria secundaria. Se aprovecha las caractersticas de direccionamiento mediante paginacin de la memoria secundaria y se consigue un ahorro en el nmero de accesos a la misma.

Ventajas e inconvenientes

La principal ventaja de este tipo de rboles consiste en que existen ms nodos en un mismo nivel que en los rboles binarios con lo que se consigue que, si el rbol es de bsqueda, los accesos a los nodos sean ms rpidos. El inconveniente ms importante que tienen es la mayor ocupacin de memoria, pudiendo ocurrir que en ocasiones la mayora de los nodos no tengan descendientes o al menos no todos los que podran tener desaprovechndose por tanto gran cantidad de memoria. Cuando esto ocurre lo ms frecuente es transformar el rbol multicamino en su binario de bsqueda equivalente.

Вам также может понравиться