Árbol Binario

 

Concepto de árbol binario.

 

Estas estructuras se utilizan para representar datos en forma jerárquica entre los elementos. Este tipo de estructura es un tipo de dato no lineal de dos dimensiones. Los nodos de los árboles  que son los elementos o vértices contienen nodos o mas enlaces, entre los cuales contiene un nodo raíz que es el primer nodo del árbol  y que a su vez cada enlace se refiere aun nodo hijo tales como hijo izquierdo e hijo derecho. Los hijos de un solo nodo se conocen como hermanos. Séle llama grado de un nodo al numero de hijos que salen de el y a los nodos con grado 0 se les llama nodos terminales u hojas. Cada numero de un árbol tiene asociado un numero de nivel que se determina por un numero de antecesores que tiene desde la raíz, teniendo en cuenta que el nivel de la raíz es 1 ó 0. Un árbol tiene profundidad o altura que es el máximo de niveles del árbol, además el árbol cuenta con peso que es el número de nodos terminales. Al conjunto de dos o más árboles se le conoce como bosque.

Este tipo de árbol tiene la característica de que los valores en cualquier subárbol izquierdo son menores que el valor de su nodo padre, y los valores en cualquier subárbol derecho son mayores que el valores de su nodo padre.

Árbol binario es aquel en el que cada nodo tiene como máximo el grado 2. Este es equilibrado cuando la diferencia de altura entre sus subárboles de cualquier nodo es como máximo una unidad, cuando todos los nodos se encuentran a la misma altura se dice que el árbol esta equilibrado. Se llama árbol binario lleno cuando todas sus hojas están al mismo nivel y sus nodos interiores tienen cada uno dos hijos. Un árbol binario completo es equilibrado mientras un árbol binario lleno es totalmente equilibrado.

 

Árboles binarios de búsqueda.

Dentro del tipo de árbol binario de búsqueda en cualquier nodo el valor es superior a los valores de los nodos de el subárbol (izquierdo e inferior) a el subárbol derecho. Dentro de las características de estos se puede decir que no son únicos para los datos dados.

La utilidad de este tipo de árbol es la eficiencia de búsqueda en un nodo, esta es similar a la búsqueda binaria. La supresión de un nodo requiere la liberación del espacio en la memoria que es ocupada por el mismo.

 

Búsqueda de un elemento.

Este comienza en el nodo raíz y consta de los siguientes pasos:

·        La clave búsqueda se compra con la clave del nodo raíz.

·        Si las claves son iguales la búsqueda se detiene.

·        La clave búsqueda es mayor que la clave raíz, la búsqueda se reanuda en el subárbol derecho, si la clave búsqueda es menor que la clave raíz la búsqueda se reanuda en el subárbol izquierdo.

 

Árboles binarios equilibrados.

Es aquel en el que la altura de los subárboles izquierdo y derecho de cualquier nodo no difieren en más de una unidad. Para determinar si el árbol esta equilibrado, se lleva acabo un factor de equilibrio.

El factor de equilibrio del árbol binario es la diferencia de altura entre los subárboles izquierdo y derecho, si se denota la altura del subárbol izquierdo como hI  y la altura del subárbol derecho como hD, entonces el factor de equilibrio en un árbol se determina por la siguiente formula:

Fe = hD - hI.

 

Árbol binario equilibrado, árboles AVL.

Se dice que la eficiencia de búsqueda de un árbol binario para localizar una clave varia entre 0(n) y (Log(n)), dependiendo de la estructura. Esto es, se añaden claves a un árbol binario de búsqueda mediante el uso de algoritmos, la estructura del árbol va a depender del orden en el que estas se añaden,  de manera que los elementos se insertan de manera creciente o decreciente, de manera que el árbol tendrá todas las ramas izquierda y derecha vacías y la búsqueda en el árbol será de modo secuencial. Para que una búsqueda resulte eficiente es importante que los árboles binarios estén equilibrados y estos sean de mínima altura.

Un árbol binario equilibrado es aquel en el que la altura del subárbol izquierdo y derecho de cualquier nodo no difiere en mas de una unidad, de manera que permite que árboles asimétricos se consideren equilibrados. El árbol binario de búsqueda ideal será un árbol de búsqueda equilibrada y de altura mínima. Los árboles binarios son equilibrados con los denominados árboles AVL, los AVL son árboles binarios de búsqueda equilibrada, estos no necesariamente deben de ser de altura mínima.

 

Bibliografía:

 

C++ como programar. Cuarta edición.

Guillermo Trujado Mendoza, Miguel Gutiérrez Hernández.

Pearson Educación.

 

Estructuras de datos en C (SCHAUM).

Luís Joyanes Aguilar, Matilde Fernández Azuela

MC Graw Hill.