Documentos de Académico
Documentos de Profesional
Documentos de Cultura
rboles
Un rbol es una estructura no lineal en la que cada nodo puede apuntar a uno o varios nodos. A B E K F L C G M H D I N J O
Nodo hoja: nodo que no tiene hijos. En el ejemplo hay varios: 'F', 'H', 'I', 'K', 'L', 'M', 'N' y 'O'.
Nodo rama: aunque esta definicin apenas la usaremos, estos son los nodos que no pertenecen a ninguna de las dos categoras anteriores. En el ejemplo: 'B', 'C', 'D', 'E', 'G' y 'J'.
1 de 2
Aadir o insertar elementos. Borrar elementos. Moverse a travs del rbol. Recorrer el rbol completo.
Insertar un elemento
Se requiere un apuntador auxiliar para conservar una referencia al padre del nodo raz actual. El valor inicial para ese apuntador es NULL
Padre = NULL nodo = Raz Ciclo: mientras actual no sea un rbol vaco o hasta que se encuentre el elemento. Si el valor del nodo raz es mayor que el elemento que buscamos, continuaremos la bsqueda en el rbol izquierdo:Padre=nodo,nodo=nodo->izquierdo.
Insertar un elemento
Si el valor del nodo raz es menor que el elemento que buscamos, continuaremos la bsqueda en el rbol derecho: Padre=nodo, nodo=nodo->derecho. Si nodo no es NULL, el elemento est en el rbol, por lo tanto salimos. Si Padre es NULL, el rbol estaba vaco, por lo tanto, el nuevo rbol slo contendr el nuevo elemento, que ser la raz del rbol. Si el elemento es menor que el Padre, entonces insertamos el nuevo elemento como un nuevo rbol izquierdo de Padre. Si el elemento es mayor que el Padre, entonces insertamos el nuevo elemento como un nuevo rbol derecho de Padre.
void RecorrerArbol(Arbol a) {
if(a == NULL) return; RecorrerArbol(a->rama[0]); RecorrerArbol(a->rama[1]); RecorrerArbol(a->rama[2]);}
Recorridos
Recorrido Preorden
El valor del nodo se procesa antes de recorrer las ramas
Recorrido Preorden
Visitar raz
Recorrer subrbol izquierdo Recorrer subrbol derecho
Recorrido Preorden
A B C D
E
K
F
L
G
M
H
N
J
O
Si seguimos el rbol del ejemplo en preorden, y el proceso de los datos es: ABEKFCGLMDHJNO
Recorrido Inorden
Recorrido Inorden
El valor del nodo se procesa despus de recorrer la primera rama y antes de recorrer la ltima. Si seguimos el rbol del ejemplo en inorden es:
KEBFALGMCHDNJO
Recorrido Postorden
En este tipo de recorrido, el valor del nodo se procesa despus de recorrer todas las ramas:
Recorrido Postorden
Recorrer subrbol izquierdo
Recorrer subrbol derecho Visitar raz
Recorrido Postorden
Si seguimos el rbol del ejemplo en post-orden, y el proceso de los datos es sencillamente mostrarlos por pantalla, obtendremos algo as:
KEFBLMGCHNOJDA