Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capitulo VII
ESTRUCTURA DE DATOS
“Árboles Binarios”
La imagen
muestra de
forma gráfica
cuales son los
nodos Raíz,
Rama, Hoja.
La siguiente imagen muestra de forma gráfica los nodos Padre, Hijo y
Hermanos
Niveles de un Árbol Binario
Los árboles a demás de los nodos tienen otras propiedades importantes que son utilizadas en
diferentes ámbitos los cuales son:
Nivel: Nos referimos como nivel a cada generación dentro del árbol. Por ejemplo, cuando a un
nodo hoja le agregamos un hijo, el nodo hoja pasa a ser un nodo rama pero a demás el árbol
crece una generación por lo que el Árbol tiene un nivel mas. Cada generación tiene un número
de Nivel distinto que las demás generaciones.
En la imagen se
muestran los Niveles y
la Altura de un Árbol.
La altura es calculado mediante recursividad tomando el nivel mas grande de los dos sub-árboles de
forma recursiva de la siguiente manera:
altura = max(altura(hijo1), altura(hijo2),altura(hijoN)) + 1
Peso de Árboles Binarios
Peso: Conocemos como peso al número de nodos que tiene un Árbol. Este factor es importante por
que nos da una idea del tamaño del árbol y el tamaño en memoria que nos puede ocupar en tiempo de
ejecución(Complejidad Espacial en análisis de algoritmos).
El peso se puede calcular mediante cualquier tipo de recorrido el cual vaya contando los nodos a
medida que avanza sobre la estructura. El peso de un árbol es igual a la suma del peso de los sub-
árboles hijos + 1
peso = peso(hijo1) + peso(hijo2) + peso(hijoN)+ 1
Árboles Binarios Completos
Un binario se denomina completo si todos sus nodos, excepto las hojas, tienen
exactamente dos subarboles. Un árbol binario completo de profundidad n es un
árbol en el que para cada nivel, del O al nivel n- 1 tiene un conjunto lleno de
nodos y todos los nodos hoja a nivel n ocupan las posiciones más a la izquierda
del árbol.
Un árbol binario completo que contiene 2" nodos a nivel n es un árbol lleno. Un
árbol lleno es un árbol binario que tiene el máximo número de entradas para su
altura. Esto sucede cuando el Último nivel está lleno.
OBSERVACIÓN
Árbol Completo: De Altura n es un árbol en el que para c/nivel, del 0 al n–1, está
lleno de nodos. Todos los nodos hoja a nivel n ocupan posiciones a la izquierda.
Árbol Lleno: Un árbol lleno es un árbol binario que tiene el máximo número de
entradas para su altura. Esto sucede cuando el Último nivel está lleno.
Árboles Binarios Completos
El recorrido de un árbol supone visitar cada nodo sólo una vez. Dado un árbol binario que
consta de un raíz, un subárbol izquierdo y un subárbol derecho se pueden definir tres tipos de
secuencia de recorrido en profundidad.
N N N
I D I D I D
NID IND IDN
La designación tradicional de los recorridos utiliza un nombre para el nodo raíz (N), para el
subárbol.
Según sea la estrategia a seguir, los recorridos se conocen como enorden, preorden, posorden.
Preorden (nodo-izquierdo-derecho) (NID)
Enorden (izquierdo-nodo-derecho) (IND)
Posorden (izquierdo-derecho-nodo) (IDN)
Recorrido de un Árbol Binario
NID IDN
NID
Se recorre primero la raíz, luego se recorren los demas nodos ordenados por
el nivel al que pertenecen en orden de Izquierda a derecha.
Este tipo de búsqueda se caracteriza por que la búsqueda se hace nivel por
nivel y de izquierda a derecha.
Recorrido en amplitud A B C D E F G H I J K L MN O
Búsquedas Secuenciales – En amplitud
Los árboles vistos hasta ahora no tienen un orden definido; sin embargo, los
árboles binarios ordenados tienen sentido. Estos árboles se denominan
árboles binarios de búsqueda
Un árbol binario de búsqueda es aquel que dado un nodo, todos los datos
del subárbol izquierdo son menores que los datos de ese nodo, mientras que
todos los datos del subárbol derecho son mayores que sus propios datos.
7 28
5 9 18 35
3 6 14 21
Árbol de Búsqueda Binaria
El valor 5 se convierte
en Hijo Izquierdo de 7
Conclusión
En este módulo hemos visto los puntos más relevantes a tener en cuenta de
lo que son los árboles y los principales métodos de búsqueda, sin embargo
estamos lejos de cubrir este tema en profundidad ya que existen
muchísimos tipos de operaciones y algoritmos que se pueden realizar sobre
estas estructuras de datos