Los árboles binarios son estructuras de datos no lineales que representan elementos con dos ramas o hijos. Permiten realizar operaciones como búsqueda, inserción y borrado de manera eficiente. El interés de los árboles binarios de búsqueda es que ordenan los elementos de forma ascendente y permiten buscar elementos de forma rápida.
2. INTRODUCCIÓN
Es un conjunto finito de elementos, de
nombres nodos, que bien están vacios o esta
formado por una raíz con dos arboles binarios
disjuntos, llamados subárbol izquierdo y
subárbol derecho.
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.
3. OPERACIONES BÁSICAS
La tarea de un árbol es ejecutar una operación con
cada uno de los elementos del árbol. Esta
operación es un parámetro que es la visita de
todos los nodos o, como se denomina usualmente,
del recorrido del árbol. Recorrido en amplitud
Es aquel que recorre el
árbol por niveles, en
el último ejemplo sería:
12 - 8,17 - 5,9,15
4. TIPOS DE ARBOLES BINARIOS
Un árbol binario lleno en el que cada nodo tiene
cero o dos hijos.
Un árbol binario perfecto en el que todas las
hojas (vértices con cero hijos) están a la misma
profundidad (distancia desde la raíz, también
llamada altura).
5. RECORRIDOS EN ARBOLES BINARIOS
Hay tres tipos de recorridos Pre-orden, Entre-
orden y Post-orden.
1. Pre-orden
Recorre Raíz, Izquierda, Derecha. (RID)
2. Entre-orden
Recorrer Izquierdo, Raíz, Derecho. (IRD)
3. Post-orden
Izquierda, Derecha, Raíz. (IDR)
6. EJEMPLO DE RECORRIDO EN ARBOLES
BINARIOS
Árbol Binario
Pre-orden (A,B,C,D,E,F,G,H,I,J)
Entre-orden(C,B,D,E,A,F,I,H.J,G)
Post-orden (C,E,D,B,I,J,H,G,F,A)
7. ARBOLES BINARIOS DE BÚSQUEDA
Todo árbol vacío es un árbol binario de búsqueda. Un
árbol binario no vacío, de raíz R, es un árbol binario
de búsqueda si:
• En caso de tener subárbol izquierdo, la raíz R debe
ser mayor que el valor máximo almacenado en el
subárbol izquierdo, y que el subárbol izquierdo sea
un árbol binario de búsqueda.
• En caso de tener subárbol derecho, la raíz R debe
ser menor que el valor mínimo almacenado en el
subárbol derecho, y que el subárbol derecho sea un
árbol binario de búsqueda.
8. EL INTERÉS DE LOS ÁRBOLES BINARIOS DE BÚSQUEDA (ABB) RADICA EN QUE SU
RECORRIDO EN IN ORDEN PROPORCIONA LOS ELEMENTOS ORDENADOS DE FORMA
ASCENDENTE Y EN QUE LA BÚSQUEDA DE ALGÚN ELEMENTO SUELE SER MUY
EFICIENTE.
9. BÚSQUEDA
La búsqueda consiste acceder a la raíz del árbol, si
el elemento a localizar coincide con éste la búsqueda
ha concluido con éxito, si el elemento es menor se
busca en el subárbol izquierdo y si es mayor en el
derecho. Si se alcanza un nodo hoja y el elemento no
ha sido encontrado se supone que no existe en el
árbol
10. INSERCIÓN
La inserción es similar a la búsqueda y se puede dar una solución tanto
iterativa como recursiva. Si tenemos inicialmente como parámetro un árbol
vacío se crea un nuevo nodo como único contenido el elemento a insertar. Si
no lo está, se comprueba si el elemento dado es menor que la raíz del árbol
inicial con lo que se inserta en el subárbol izquierdo y si es mayor se inserta
en el subárbol derecho. De esta forma las inserciones se hacen en las hojas
11. BORRADO
La operación de borrado no es tan sencilla como las de búsqueda e
inserción. Existen varios casos a tener en consideración:
Borrar un nodo sin hijos ó nodo hoja: simplemente se borra y se
establece a nulo el apuntador de su padre.
12. Borrar un nodo con un subárbol hijo: se borra el
nodo y se asigna su subárbol hijo como subárbol de
su padre.
13. Borrar un nodo con dos sub árboles hijo: la solución está en reemplazar el
valor del nodo por el de su predecesor o por el de su sucesor en in orden y
posteriormente borrar este nodo. Su predecesor en in orden será el nodo
más a la derecha de su subárbol izquierdo (mayor nodo del sub arbol
izquierdo), y su sucesor el nodo más a la izquierda de su subárbol derecho
(menor nodo del sub árbol derecho). En la siguiente figura se muestra cómo
existe la posibilidad de realizar cualquiera de ambos reemplazos: