Upload
cristopher-castro
View
215
Download
0
Embed Size (px)
DESCRIPTION
practica arboles binarios
Citation preview
Arboles binarios 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
-las caractersticas de un rbol
a) Todo rbol que no es vaco tiene un nico nodo de raz
b) un nodo x es descendiente directo de un nodo Y x es hijo de Y
c) un nodo x es un antecesor de un nodo Y
x es padre de y
d) todos los hijos descendientes de un solo nodo son hermanos
c) todo nodo que no tiene nodos descendientes se denominan NODO DE HOJA o TERMINAL
f) todo no que no es raz ni terminal es un Nodo Interior
g) GRADO es el NMERO de descendientes directos que tiene un nodo
h) GRADO DEL RBOL es el mximo grado de todos los nodos de rbol
i) Nivel es el nmero de arcos que deben ser recorridos para llegar a un determinado nodo
j) Altura del rbol es el mximo nmero de niveles de todo el nodo del rbol
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
Mtodos de recorrido en mi caso defin 3 metodos de recorrido los cules son
recursivos
public void RPreOrden(Nodo raiz) { if (raiz == null) { return; } System.out.println(raiz.getValor()); RPreOrden(raiz.getIzquierda()); RPreOrden(raiz.getDerecha()); }
public void RInOrden(Nodo raiz) { if (raiz == null) { return; } RInOrden(raiz.getIzquierda()); System.out.println(raiz.getValor()); RInOrden(raiz.getDerecha()); }
public void RPosOrden(Nodo raiz){ if (raiz == null) { return; } RPosOrden(raiz.getIzquierda()); RPosOrden(raiz.getDerecha());
System.out.println(raiz.getValor()); }
Ejemplo de ejecucin Un ejemplo de ejecucin del programa son los 2 siguientes el primero es creando un rbol con nmeros
Donde el rbol quedara de la siguiente forma
De acuerdo a los datos introducidos por teclado
Recorrido en pre orden Recorrido Inorden Recorrido Pos orden
ARBOL DE STRINGS
Recorrido en pre orden Recorrido Inorden Recorrido Pos orden