Vous êtes sur la page 1sur 10

Qu son los rboles binarios de bsqueda

Empezaremos definiendo lo que son los rboles. Un rbol es una coleccin de nodos que puede estar vaca o no.
Si no est vaca, el rbol estar formado por un nodo raz y cero o ms (sub)rboles que estn unidos a la raz
por otras tantas aristas.

Para que un rbol sea binario es requisito indispensable el que el nmero mximo de hijos que tenga cada nodo
sea 2. Por lo tanto el rbol anterior no es un rbol binario, ya que el nodo A tiene 3 hijos.

Por ltimo, un rbol ser de bsqueda si todos sus nodos cumplen las siguientes condiciones:

1. Todos los nodos situados a su izquierda son menores que l.

2. Todos los nodos situados a su derecha son mayores que l.

Resumiendo, se puede decir que un rbol binario de bsqueda es un rbol en el que cada nodo tiene a lo sumo
dos hijos, y en el que para cada nodo todos los nodos a su izquierda son menores que l y todos los nodos a su
derecha son mayores que l.

El siguiente rbol es un ejemplo de rbol de bsqueda:

En cambio este rbol viola la condicin de orden en el nodo 2, ya que un nodo a su derecha, 1, no es mayor que
l.
Operaciones bsicas de los rboles binarios de bsqueda

Como en toda estructura de datos hay dos operaciones bsicas, insercin y eliminacin.

Insercin
El procedimiento de insercin en un rbol binario de bsqueda es muy sencillo, nicamente hay que tener
cuidado de no romper la estructura ni el orden del rbol.

Cuando se inserta un nuevo nodo en el rbol hay que tener en cuenta que cada nodo no puede tener ms de dos
hijos, por esta razn si un nodo ya tiene 2 hijos, el nuevo nodo nunca se podr insertar como su hijo. Con esta
restriccin nos aseguramos mantener la estructura del rbol, pero an nos falta mantener el orden.

Para localizar el lugar adecuado del rbol donde insertar el nuevo nodo se realizan comparaciones entre los
nodos del rbol y el elemento a insertar. El primer nodo que se compara es la raz, si el nuevo nodo es menor
que la raz, la bsqueda prosigue por el nodo izquierdo de ste. Si el nuevo nodo fuese mayor, la bsqueda
seguira por el hijo derecho de la raz.

Este procedimiento es recursivo, y su condicin de parada es llegar a un nodo que no tenga hijo en la rama por
la que la bsqueda debera seguir. En este caso el nuevo nodo se inserta en ese hueco, como su nuevo hijo.

Vamos a verlo con un ejemplo sobre el siguiente rbol:

Se quiere insertar el elemento 6.

Lo primero es comparar el nuevo elemento con la raz. Como 6 > 4, entonces la bsqueda prosigue por el lado
derecho. Ahora el nuevo nodo se compara con el elemento 8. En este caso 6 < 8, por lo que hay que continuar la
bsqueda por la rama izquierda. Como la rama izquierda de 8 no tiene ningn nodo, se cumple la condicin de
parada de la recursividad y se inserta en ese lugar el nuevo nodo.

Borrar
El borrado en rboles binarios de bsqueda es otra operacin bastante sencilla excepto en un caso. Vamos a ir
estudiando los distintos casos.
Tras realizar la bsqueda del nodo a eliminar observamos que el nodo no tiene hijos. Este es el caso ms
sencillo, nicamente habr que borrar el elemento y ya habremos concudo la operacin.

Si tras realizar la bsqueda nos encontramos con que tiene un slo hijo. Este caso tambin es sencillo, para
borrar el nodo deseado, hacemos una especie de puente, el padre del nodo a borrar pasa a apuntar al hijo del
nodo borrado.

Por ltimo, el caso ms complejo, si el nodo a borrar tiene dos hijos. En este caso se debe sustitui el nodo a
borrar por mayor de los nomdos menores del nodo borrado, o por el menor de los nodos mayores de dicho nodo.
Una vez realizada esta sustitucin se borrra el nodo que sustituy al nodo eliminado (operacin sencilla ya que
este nodo tendr un hijo a lo sumo).

Sobre el siguiente rbol queremos eliminar el elemento 6. Tenemos dos opciones para sustituirlo:

El menor de sus mayores: 7.

El mayor de sus menores: 4.

Vamos a sustituirlo por el 7 (por ejemplo). El rbol resultante sera el siguiente, tras eliminar tambin el
elemento 7 de su ubicacin original.
Otras operaciones
En los rboles de bsqueda la operacin buscar es muy eficiente. El algoritmo compara el elemento a buscar
con la raz, si es menor continua la bsqueda por la rama izquierda, si es mayor continua por la izquierda. Este
procedimiento se realiza recursivamente hasta que se encuentra el nodo o hasta que se llega al final del rbol.

Otra operacin importante en el rbol es el recorridod el mismo. El recorrido se puede realizar de tres formas
diferentes:

Preorden: Primero el nodo raz, luego el subrbol izquierdo y a continuacin el subrbol


derecho.

Inorden: Primero el subrbol izquierdo, luego la raz y a continuacin el subrbol derecho.

Postorden: Primero el subrbol izquierdo, luego el subrbol derecho y a continuacin la


raz.

Utilizacin de los rboles binarios de bsqueda

Los rboles binarios de bsqueda son unas estructuras de datos muy utilizadas en la informtica. Una de sus
ms importantes aplicaciones es el almacenamiento de informacin asociada con claves de bsqueda, ya que
permite un almacenamiento y recuperacin de la informacin muy eficiente.

Aplicacin rboles binarios de bsqueda

Las operaciones que se presentan en esta aplicacin son las siguientes:

Insertar: Accin a travs de la cual se pueden insertar nuevos elementos en la estructura de datos. Se
presenta un dilogo para la introduccin del nuevo valor.

Borrar: Si se desea borrar un nodo se debe seleccionar dicho nodo y pulsar el botn Borrar.

Vaciar rbol: Esta accin elimina todos los elementos presentes en la lista.

Camino recorrido: En este lugar se muestran los diferentes nodos por los que fue pasando (con los que
se compar), el elemento insertado o eliminado.
Qu son los rboles AVL

Lo primero ser explicar de conde proviene el nombre AVL. Son las iniciales de Adelson-Velskii y Landis, los
hombres que idearon este tipo de rbol.

Bsicamente un rbol AVL es un rbol binario de bsqueda al que se le aade una condicin de equilibrio. Esta
condicin es que para todo nodo la altura de sus subrboles izquierdo y derecho pueden diferir a lo sumo en 1.

Vamos a ver dos ejemplos de rboles binarios de bsqueda:

Slo el primer rbol es AVL. El segundo viola la condicin de equilibrio en el nodo 6, ya que su subarbol
izquierdo tiene altura 3 y su subrbol derecho tiene altura 1.

Operaciones bsicas de los rboles AVL


Insercin
La insercin de un elemento en un rbol AVL es idntica que en un rbol binario de bsqueda, la diferncia se
encuentra en la comprobacin que hay que realizar posteriormente en los rboles AVL.

En un rbol AVL tras realizar la insercin hay que comprobar que se sigue manteniendo la condicin de
equilibrio, o lo que es lo mismo, que la altura del subrbol izquierdo y la del subrbol derecho difieran en una
unidad o sean iguales. Si se produce un desequilibrio hay que reequilibrar la estructura para que siga siendo un
rbol AVL.

Vamos a ver los mecanismos de reequilibrado de los rboles AVL:

Rotacin simple.
El nodo insertado es el marcado con una X. Esta insercin provoca un desequilibro en el nodo B, que se
soluciona con esta rotacin.

Rotacin doble.

El nodo insertado puede ser una de las dos X, provocando el desequilibrio en el nodo C.

Vamos a ver dos ejemplos reales:

Rotacin simple.

Rotacin doble.

Borrar
El procedimiento de borrado es el mismo que en el caso de rboles binarios de bsqueda. La diferencia se
encuentra en el proceso de reequilibrado posterior. Este proceso es idntico al que se realiza en la insercin, la
nica diferencia es que en la insercin tras realizar una rotacin el rbol ya estaba equilibrado, mientras que en
el borrado puede ser necesario realizar mas de una rotacin.

Ejemplo:

Si eliminamos del siguiente rbol el nodo 3, el rbol se desequilibra en el nodo 2.

Tras aplicar una rotacin simple, el rbol resultante es:

Otras operaciones

Las operaciones adicionales en un rbol AVl son anlogas a las de rboles binarios de bsqueda.

Utilizacin de los rboles AVL

Los rboles AVL son un subconjunto de los rboles binarios de bsqueda, por lo que sus aplicaciones son muy
similares.

Aplicacin rboles AVL

Las operaciones que se presentan en esta aplicacin son las siguientes:

Insertar: Accin a travs de la cual se pueden insertar nuevos elementos en la estructura de datos. Se
presenta un dilogo para la introduccin del nuevo valor.

Borrar: Si se desea borrar un nodo se debe seleccionar dicho nodo y pulsar el botn Borrar.

Vaciar rbol: Esta accin elimina todos los elementos presentes en la lista.
Camino recorrido: En este lugar se muestran los diferentes nodos por los que fue pasando (con los que
se compar), el elemento insertado o eliminado.

Un puntero es una variable que contiene la direccin de memoria donde se encuentra


almacenado un dato.
Una variable referenciada o dato apuntado es el dato cuya posicin en memoria est
contenida en un determinado puntero (variable dinmica).

Vous aimerez peut-être aussi