Beruflich Dokumente
Kultur Dokumente
1. Conceptos
2. Implementaciones
3.rboles binarios
4.Recorridos
rboles
Los elementos que constituyen un rbol mantienen una
estructura jerrquica, obtenida a partir de estructuras
lineales, al eliminar el requisito de que cada elemento
tiene como mximo un sucesor.
rboles
Aplicaciones de rboles
Representacin de datos jerrquicos:
Taxonomas
Organigramas
Genealogas
Sistemas de archivos
Jerarqua de clases en Java
Algoritmos de bsqueda y ordenacin
Compiladores (rboles sintcticos, rboles de
expresiones)
Terminologa
Los elementos de los rboles se llaman nodos
Conceptualmente se pueden ver los rboles de arriba hacia
abajo (como un rbol de genealoga familiar)
El nodo que est ms arriba
es la raz (root)
Los nodos estn conectados
por enlaces (edges)
Hay nodos padres (parent) e
hijos (child)
Los nodos sin hijos se llaman
hojas (leaves)
Estructuras de Datos rboles 8
rboles
Conceptos Implementaciones A. Binarios Recorridos
Terminologa
Los nodos que comparten el mismo padre son hermanos
(siblings)
Un camino (path) es una secuencia de nodos, tal que el
siguiente nodo es hijo del anterior
Rama: camino que termina en una hoja
Terminologa
La profundidad (depth) de un nodo es la longitud del
camino desde la raz (ej.: 2)
La altura (height) de un rbol es la profundidad mxima (3)
Si existe un camino entre dos nodos, se dice que uno de
ellos es un ascendiente y el otro es un descendiente
Peso: nmero de hojas del rbol (ej.: 6)
Terminologa
Grado de un rbol es el nmero mximo de hijos que
pueden tener sus subrboles:
Si el rbol es n-ario, el grado es n
Un rbol con n = 2 se denomina rbol binario
rbol lleno es un rbol en el que todos sus subrboles
tienen n hijos, y adems es perfecto, si est lleno y todas sus
hojas tienen la misma profundidad.
Implementaciones de rboles
Varias implementaciones:
Representaciones secuenciales
Arreglo unidimencional
Implementacin mediante una lista de hijos
Representaciones enlazadas:
Cada nodo con enlace al primer hijo y hermanos
Implementacin mediante una lista de listas
rboles binarios
Cada nodo slo puede tener dos hijos: hijo izquierdo e
hijo derecho
Se simplifica la implementacin y la lgica de los
algoritmos
Recorridos
Recorrer un rbol es visitar cada nodo del rbol una
sola vez
El recorrido de un rbol permite ver la lista de datos
almacenada en el rbol (ordenada segn se visitan los
nodos)
Dos categoras de recorrido:
Recorridos en profundidad
o Preorden
o Inorden
o Postorden
Recorridos en anchura o por niveles
Estructuras de Datos rboles 23
rboles
Conceptos Implementaciones A. Binarios Recorridos
Recorridos en profundidad
Preorden: consiste en visitar al nodo padre y despus a sus hijos
rbol general: preorden(TreeNode x)
if(x != null){
print(x.dato);
for (TreeNode hijo: x.hijos)
preorden(hijo);
}
rbol binario: preorden (BinaryNode x)
if(x != null){
print(x.dato);
preorden(x.hijoIzq);
preorden(x.hijoDer);
}
Recorridos en profundidad
Preorden: consiste en visitar al nodo padre y despus a sus hijos
Recorrido preorden:
ABDEHCFIG
Recorridos en profundidad
Postorden: consiste en visitar a los hijos y despus al padre
rbol general: postorden(TreeNode x)
if(x != null){
for (TreeNode hijo: x.hijos)
postorden(hijo);
print(x.dato);
}
rbol binario: postorden (BinaryNode x)
if(x != null){
postorden(x.hijoIzq);
postorden(x.hijoDer);
print(x.dato);
}
Recorridos en profundidad
Postorden: consiste en visitar a los hijos y despus al padre
Recorrido postorden:
DHEBIFGCA
Recorridos en profundidad
Inorden: consiste en visitar al hijo izquierdo, despus al padre, y
por ltimo, al hijo de la derecha.
Exclusivo de rboles binarios.
rbol binario:
inorden (BinaryNode x)
if(x != null){
postorden(x.hijoIzq);
print(x.dato);
postorden(x.hijoDer);
}
Recorridos en profundidad
Inorden: consiste en visitar al hijo izquierdo, despus al padre, y
por ltimo, al hijo de la derecha.
Recorrido inorden:
DBHEAFICG
Recorridos
Recorrido preorden:
ABDEHCFIG
Recorrido postorden:
DHEBIFGCA
Recorrido inorden:
DBHEAFICG