Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arboles Binarios Final
Arboles Binarios Final
Un rbol es una estructura dinmica no lineal ; Se define como una estructura homognea de tipo T con un
nmero finito de rboles disjuntos llamados subrboles
rboles Binarios
Un rbol binario cada nodo puede tener como mximo dos subrboles y siempre es necesario distinguir entre
el subrbol izquierdo y el subrbol derecho
rbol binario tipo T es una estructura homognea que es la concatenacin de un elemento tipo T, llamado raz,
con dos rboles binarios disjuntos, llamados subrbol izquierdo y subrbol derecho.
Se pueden aplicar para representar un arbol genealgico o para representar expresiones algebraicas
construidas con operadores binarios
Distintos. Cuando sus estructuras son diferentes
Similares. Cuando sus estructuras son idnticas pero la informacin que contiene cada rbol es diferente.
Equivalentes. Cuando son similares y adems la informacin es idntica entre los dos rboles.
Se dice que un rbol binario est lleno si es un rbol binario de profundidad k que tiene (2^k) - 1 nodos.
Un
rbol binario lleno es aquel que contiene el nmero mximo de posibles nodos. Como en estos casos no existen
subrboles vacos excepto para los nodos terminales.
Un rbol binario con n nodos y profundidad k se dice que es completo si y slo si sus nodos se corresponden
con los nodos numerados de 1 a n en el rbol binario lleno de profundidad k. Definimos un rbol binario
completo (ABC) como un A .B .lleno pero con sus hojas dispuestas de tal manera que las hojas del nivel ms bajo
estn situadas tan a la izquierda como sea posible.
Recorridos sistemticos.
Una de las operaciones ms importantes que se realiza en un rbol binario es el recorrido de los mismos. Recorrer
significa visitar los nodos del rbol en forma ordenada, de tal manera que todos los nodos del mismo sean
visitados una sola vez. Existen tres formas diferentes de efectuar el recorrido y todas Ellas de naturaleza recursiva;
estas son:
a) Recorrido en preorden
Visitar la raz
Recorrer el subrbol izquierdo
Recorrer el subrbol derecho
b) Recorrido en inorden
Recorrer el subrbol izquierdo
Visitar la raz
Recorrer el subrbol derecho
c) Recorrido en Posorden
Recorrer el subrbol izquierdo
Recorrer el subrbol derecho
Visitar la raz
Procedimiento
Comenc creando la clase nodo que define un nodo como un tipo de dato que contiene 1 dato y sus
respectivas 2 conexiones (izquierda y derecha)
Despus se comenz definir la clase rbol Binario en la cual damos los parmetros iniciales como establecer la
raz del rbol a nulo y definir los mtodos de escritura
Ejemplo de ejecucin
Un ejemplo de ejecucin del programa son los 2 siguientes el primero es creando un rbol con nmeros
Recorrido Inorden
ARBOL DE STRINGS
Recorrido Inorden
Bsqueda en un rbol:
El algoritmo de busque principalmente visita la raz de este, si el elemento que
buscamos est en la raz entonces la bsqueda termina pero si no, si es ms
grande visita primero el subrbol derecho y si es ms chico visita el subrbol
izquierdo principalmente se usa de manera recursiva ya que necesitamos visitar
el mismo rbol aunque tambin se puede hacer de forma iterativa
O en forma de seudocdigo
boolean buscar(tarbol *a, elem)
{
if (a == NULL) return FALSE;
else if (a->clave < elem) return buscar(a->der, elem);
else if (a->clave > elem) return buscar(a->izq, elem);
else return TRUE;
}
Ejemplo de ejecucin
*/////*arbol creado*//////*
recorrido PreOrden
Hola
esto
es
un
rbol
*/////* recorrido InOrden */////*
es
arbol
un
esto
Hola
*/////recorrido PosOrden*/////
arbol
un
es
esto
Hola
*/////buscando en el rbol el nodo esto*/////
comprobacion exitosa se encontro el Nodo:esto
Insercin en un rbol:
Ejemplo de ejecucin
*/////*arbol creado*//////*
recorrido PreOrden
Hola
esto
es
un
rbol
*/////* recorrido InOrden
es
arbol
un
esto
Hola
*/////recorrido PosOrden*/////
arbol
un
es
esto
Hola
*/////buscando en el rbol el nodo esto*/////
comprobacion exitosa se encontro el Nodo:esto
*/////*insertando el nodo : exito*/////*
*/////*recorrido PreOrden*/////*
Hola
esto
es
un
arbol
exito
Borrado en un rbol
Pueden darse tres casos, una vez encontrado el nodo a borrar:
1) El nodo no tiene descendientes. Simplemente se borra.
free(aux);//liberamos la memoria
que usamos con el auxiliar
}
}
Ejemplo de ejecucin
*/////*arbol creado*//////*
recorrido PreOrden
Hola
esto
es
un
rbol
*/////* recorrido InOrden
es
arbol
un
esto
Hola
*/////recorrido PosOrden*/////
arbol
un
es
esto
Hola
*/////buscando en el rbol el nodo esto*/////
comprobacion exitosa se encontro el Nodo:esto
*/////*insertando el nodo : exito*/////*
*/////*recorrido PreOrden*/////*
Hola
esto
es
un
arbol
xito
*/////*eliminando el nodo: es */////*
*/////*recorrido PreOrden*/////*
Hola
esto
un
arbol
xito
Los arboles binarios son estructuras que no sirven para manejar de forma muy eficiente , la verdad es que me
han gustado ms en cuanto a listas doblemente ligadas u otro tipo de estructuras ya que son muy eficientes en
la hora de buscar informacin, eliminar e insertar nuevos nodos cosas que no ocurre en otras estructuras ,el
nico inconveniente que le veo es que a la hora de crear el rbol no tenemos muchas opciones en cuanto a l
orden de introducir la informacin fuera de eso me parecen bastante eficientes