Documente Academic
Documente Profesional
Documente Cultură
TEPEJI
TECNOLOGIAS DE LA INFORMACION
ARBOLES EN
JAVA
Contenido
INTRODUCCIN .............................................................................................................................. 3
NODOS HIJOS Y PADRES ............................................................................................................... 4
Uso de los arboles ............................................................................................................................... 4
JUSTIFICACION ............................................................................................................................... 4
DEFINICIONES Y TIPOS DE ARBOLES ....................................................................................... 5
rboles analizadores ........................................................................................................................... 5
RBOL AVL ...................................................................................................................................... 5
RBOLES BINARIOS PERFECTAMENTE EQUILIBRADOS ...................................................... 6
RBOLES ROJINEGROS ................................................................................................................. 6
Operaciones ......................................................................................................................................... 7
Reparacin del balance del rbol ........................................................................................................ 7
Insercin ascendente ........................................................................................................................... 7
Reparacin del balance........................................................................................................................ 8
Insercin descendente ......................................................................................................................... 8
RBOLES B ....................................................................................................................................... 9
RBOLES B+ ..................................................................................................................................... 9
Bsqueda por clave ............................................................................................................................. 9
Insercin .............................................................................................................................................. 9
Eliminacin ......................................................................................................................................... 9
RBOLES EQUILIBRADOS .......................................................................................................... 10
Inserciones en los mrgenes .......................................................................................................... 10
Inserciones por dentro.................................................................................................................... 10
RBOLES BINARIOS DE BSQUEDA ........................................................................................ 11
BSQUEDA ..................................................................................................................................... 12
BSQUEDA EN PROFUNDIDAD ................................................................................................. 12
BSQUEDA POR AMPLITUD (O POR NIVELES) .................................................................... 13
RECORRIDOS ................................................................................................................................. 13
ORDEN PREVIO O PREORDEN .................................................................................................... 13
ORDEN SIMTRICO O INORDEN ................................................................................................ 14
ORDEN POSTERIOR O POSTORDEN .......................................................................................... 14
INSERCIN ..................................................................................................................................... 15
Arboles
Pgina 1
BORRADO ....................................................................................................................................... 15
TERMINOLOGA Y REPRESENTACIN DE UN RBOL GENERAL ..................................... 16
ARBOLES GENERALES ................................................................................................................ 17
Recorrido preorden............................................................................................................................ 19
Recorrido postorden .......................................................................................................................... 20
CONVERSIN DE UN RBOL GENERAL EN UN RBOL BINARIO ..................................... 20
CONCLUSIONES ............................................................................................................................ 21
BIBLIOGRAFIAS ............................................................................................................................ 21
Arboles
Pgina 2
INTRODUCCIN
En el siguiente trabajo se hablara acerca de las estructuras de los rboles, que se diferencia de las
estructuras lineales en la forma de manejo de los datos, las estructuras lineales como su nombre lo
indica se lo caracteriza por la linealidad tal as como los arrays que cada elemento iba ordenado
secuencialmente uno tras otra en ndices continuas en la cual a cada elemento corresponda otro
siguiente. En este caso en las estructuras no lineales cada elemento puede tener cualquier siguiente
elemento,
estas
estructuras
tambin
son
denominadas
multienlazadas.
Estaremos tambin mencionando los tipos de rboles empleados en la informtica y las operaciones
que se pueden realizar sobre las mismas y los recorridos que pueden llegar a tener tal as como el
recorrido en:
PRE Orden
In Orden
Post Orden
Y les estaremos explicando de qu manera hacerlo ya que cada uno de ellos conlleva un orden
especifico y una manera distinta dependiendo del tipo de rbol que se tenga.
ARBOLES
Un rbol consiste en un conjunto de nodos y un conjunto de aristas, de forma que se puede
distinguir un nodo llamado raz A cada nodo h, excepto la raz, le llega una arista de otro
nodo p (p padre de h, h uno de los hijos de p). Para cada nodo hay un camino (secuencia
de aristas) nico desde la raz.
Arboles
Pgina 3
Todos los nodos conectados a un nodo concreto son hijos o bien el padre de dicho nodo.
Si el nodo conectado se encuentra en la nica ruta a la raz, dicho nodo recibe el nombre de
padre.
Todos los nodos, salvo la raz, tienen un nico padre.
El resto de nodos conectados a un nodo concreto son los hijos del nodo.
JUSTIFICACION
En lo particular es necesario comprender el uso, manejo y creacin de los diferentes rboles para as
poderlos implementar en el futura ya que as nos ahorrara trabajo y esfuerzo cuando ya estemos
estudindolos mucho ms afondo y detalladamente ya que este momento este documento solo
menciona cosas bsicas de rboles solo para comprensin de ellos ya como se encuentran
estructurados.
Arboles
Pgina 4
rboles analizadores
Considere una expresin aritmtica que tal vez desee calcular con una calculadora:
3.14159*((6+3*1.17)/2)2
Esta expresin se puede ver como un rbol en el que los nodos que no son hojas
Contienen operadores y sus hijos contienen los operados, que pueden ser subexpresiones. El rbol
resultante recibe el nombre de rbol analizador o de expresin.
RBOL AVL
Es un rbol binario de bsqueda que cumple con la Condicin de que la diferencia entre las
alturas de los subrboles de cada uno de sus Nodos es, como mucho 1.
La denominacin de rbol AVL viene dada por los creadores de tal estructura
Arboles
Pgina 5
(Adelson-Velskii y Landis).
RBOLES ROJINEGROS
rbol binario de bsqueda, donde cada nodo est coloreado con los colores rojo o negro, y
se verifican las siguientes propiedades:
1. La raz es negra.
2. Si un nodo es rojo, sus hijos deben ser negros.
3. Todos los caminos desde un nodo a un nodo vaco deben contener el mismo nmero de
nodos negros.
Las condiciones (2) y (3) aseguran que el rbol nunca est demasiado desbalanceado. (2)
asegura que no puedan haber demasiados nodos rojos, y (3) dice que, despreciando el
nmero de nodos rojos, que es limitado, el rbol es perfectamente balanceado. La condicin
(1) es trivial: si la raz es roja, simplemente se colorea negra, ya que esto no violar ninguna
regla. En los ARN la operacin eliminar se complica. Cuando se necesitan rboles
equilibrados y se requieren muchas eliminaciones se emplean los AA-rboles que aaden
una condicin adicional a las impuestas por los ARN:
4. Los hijos izquierdos no pueden ser rojos.
Arboles
Pgina 6
Operaciones
Se pueden realizar operaciones de bsqueda con complejidad O(log N), por lo expuesto
anteriormente. Al realizar una insercin, la complejidad de bsqueda ser O(log N), pero
aparece un problema: el resultado ser un rbol de bsqueda binario, pero no
necesariamente un ARN. Si coloreamos el nuevo nodo rojo, el balance de negros quedar
intacto, pero se puede incurrir en una violacin rojo-rojo. Si lo coloreamos negro, no se
incurrir en una violacin rojo-rojo, pero en este caso, siempre alteraremos el balance de
negros. Al eliminar, si el nodo a eliminar es negro, ambas violaciones pueden aparecer.
Insercin ascendente
Sea X la nueva hoja aadida, P su padre, S el hermano de P (si existe) y G el abuelo.
1. Los nuevos nodos se insertan en el rbol como hojas de color rojo.
Arboles
Pgina 7
Insercin descendente
Objetivo: garantizar que en el momento de la insercin S no sea rojo, de manera que slo
haya que aadir una hoja roja y, si fuere necesario, realizar una rotacin (simple o doble).
En el camino descendente, si un nodo X tiene dos hijos rojos, el color de X cambia a rojo y
el de sus dos hijos a negro. El nmero de nodos negros en los caminos por debajo de X
permanece inalterable. Si X es la raz, la convertiramos en roja, hay que volver a negro
(esto no puede violar ninguna de las reglas). Si el padre de X es rojo, hay que aplicar
rotacin simple o doble. Qu pasa si el hermano del padre de X es tambin rojo? Esta
situacin NO puede darse, gracias al proceso efectuado en el camino descendiente.
Arboles
Pgina 8
RBOLES B
Mientras que la altura de un rbol binario completo es, aproximadamente, log2N, la altura
de un rbol M-ario completo es, ms o menos, logMN. Un B-rbol de orden M es un rbol
M-ario que verifica:
Cada pgina, excepto la pgina raz y las pginas hojas, tienen entre M/2 y M
descendientes, y entre (M/2 -1) y (M-1) elementos.
La pgina raz, o es una hoja o tiene entre 2 y M descendientes.
Las pginas hojas estn todas al mismo nivel.
RBOLES B+
Las diferencias con los rboles B son que:
Slo los nodos hoja apuntan a los registros o cubetas del fichero.
Existe un orden lineal entre las hojas, que estn encadenadas mediante punteros para
permitir un eficiente acceso secuencial.
Insercin
Se busca el nodo hoja correspondiente y se inserta la clave si no est all. Si tiene lugar una
particin, se inserta una clave en el nodo padre, que ser duplicada si la particin ocurre en
una hoja.
Eliminacin
Se busca el nodo hoja correspondiente y se elimina la clave. Si al eliminar una clave, n
queda menor a (M/2 -1), entonces debe realizarse una redistribucin de claves, tanto en el
ndice como en las pginas hojas.
Arboles
Pgina 9
RBOLES EQUILIBRADOS
Un procedimiento de insercin que siempre restaure la estructura del rbol a un equilibrio
perfecto es poco eficiente. Se usa una formulacin menos estricta de equilibrio: Un rbol
est equilibrado si para cada uno de sus nodos ocurre que las alturas de sus dos subrboles
difieren como mucho en 1(rboles AVL).
Como se ve, el problema se convirti en un problema igual al del primer caso. Los pasos
necesarios para suprimir un nodo en un rbol AVL son:
Arboles
Pgina 10
la prctica se utilizan otros esquemas de equilibrio como los rboles rojinegros: como en los
AVL las operaciones son logartmicas en el peor caso. La ventaja es que las inserciones y
eliminaciones pueden realizarse con un nico recorrido descendente.
Para una fcil comprensin queda resumido en que es un rbol binario que cumple que el
subrbol izquierdo de cualquier nodo (si no est vaco) contiene valores menores que el que
contiene dicho nodo, y el subrbol derecho (si no est vaco) contiene valores mayores.
Para estas definiciones se considera que hay una relacin de orden establecida entre los
elementos de los nodos. Que cierta relacin est definida, o no, depende de cada lenguaje
de programacin. De aqu se deduce que puede haber distintos rboles binarios de bsqueda
para un mismo conjunto de elementos.
La altura h en el peor de los casos siempre el mismo tamao que el nmero de elementos
disponibles. Y en el mejor de los casos viene dada por la expresin h = ceil(log2(c + 1)),
donde ceil indica redondeo por exceso.
El inters de los rboles binarios de bsqueda (ABB) radica en que su recorrido en inorden
proporciona los elementos ordenados de forma ascendente y en que la bsqueda de algn
elemento suele ser muy eficiente.
Dependiendo de las necesidades del usuario que trate con una estructura de este tipo se
podr permitir la igualdad estricta en alguno, en ninguno o en ambos de los subrboles que
penden de la raz. Permitir el uso de la igualdad provoca la aparicin de valores dobles y
hace la bsqueda ms compleja.
Arboles
Pgina 11
BSQUEDA
La bsqueda consiste acceder a la raz del rbol, si el elemento a localizar coincide con ste
la bsqueda ha concluido con xito, si el elemento es menor se busca en el subrbol
izquierdo y si es mayor en el derecho. Si se alcanza un nodo hoja y el elemento no ha sido
encontrado se supone que no existe en el rbol. Cabe destacar que la bsqueda en este tipo
de rboles es muy eficiente, representa una funcin logartmica. El mximo nmero de
comparaciones que necesitaramos para saber si un elemento se encuentra en un rbol
binario de bsqueda estara entre [log2(N+1)] y N, siendo N el nmero de nodos. La
bsqueda de un elemento en un ABB (rbol Binario de Bsqueda) se puede realizar de dos
formas, iterativa o recursiva.
Ejemplo de versin iterativa en el lenguaje de programacin C, suponiendo que estamos
buscando una clave alojada en un nodo donde est el correspondiente "dato" que
precisamos encontrar:
data Buscar_ABB(abb t,clave k)
{
abb p;
dato e;
e=NULL;
p=t;
if (!estaVacio(p))
{
while (!estaVacio(p) && (p->k!=k) )
{
if (k < p->k)
{
p=p->l;
}
if (p->k < k)
{
p=p->r;
}
}
if (!estaVacio(p) &&(p->d!=NULL) )
{
e=copiaDato(p->d);
}
}
return e;
}
BSQUEDA EN PROFUNDIDAD
(en ingls DFS o Depth First Search) es un algoritmo que permite recorrer todos los nodos de un
rbol de manera ordenada, pero no uniforme. Su funcionamiento consiste en ir expandiendo todos y
cada uno de los nodos que va localizando, de forma recurrente, en un camino concreto. Cuando ya
no quedan ms nodos que visitar en dicho camino, regresa, de modo que repite el mismo proceso
con cada uno de los hermanos del nodo ya procesado.
Arboles
Pgina 12
RECORRIDOS
ORDEN PREVIO O PREORDEN
Si el rbol es vaco, entonces la lista vaca es el listado de los nodos del rbol en Preorden. Si el
rbol no es vaco, el listado en preorden de sus nodos est formado, primero, Por la raz del rbol,
seguido por los nodos del primer subrbol en preorden, luego Por los nodos del segundo subrbol
en preorden, y as sucesivamente hasta los Nodos del ltimo subrbol en preorden.
Arboles
Pgina 13
Arboles
Pgina 14
INSERCIN
La insercin es similar a la bsqueda y se puede dar una solucin tanto iterativa como recursiva. Si
tenemos inicialmente como parmetro un rbol vaco se crea un nuevo nodo como nico contenido
el elemento a insertar. Si no lo est, se comprueba si el elemento dado es menor que la raz del rbol
inicial con lo que se inserta en el subrbol izquierdo y si es mayor se inserta en el subrbol derecho.
De esta forma las inserciones se hacen en las hojas.
BORRADO
La operacin de borrado no es tan sencilla como las de bsqueda e insercin. Existen varios
casos a tener en consideracin:
Borrar un nodo sin hijos nodo hoja: simplemente se borra y se establece a nulo el
apuntador de su padre.
Nodo a eliminar 74
Arboles
Pgina 15
Borrar un nodo con un subrbol hijo: se borra el nodo y se asigna su subrbol hijo como
subrbol de su padre.
Nodo a eliminar 70
Borrar un nodo con dos subrboles hijo: la solucin est en reemplazar el valor del nodo
por el de su predecesor o por el de su sucesor en inorden y posteriormente borrar este nodo.
Su predecesor en inorden ser el nodo ms a la derecha de su subrbol izquierdo (mayor
nodo del subrbol izquierdo), y su sucesor el nodo ms a la izquierda de su subrbol
derecho (menor nodo del subrbol derecho). En la siguiente figura se muestra cmo existe
la posibilidad de realizar cualquiera de ambos reemplazos:
Nodo a eliminar 59
Pgina 16
NIVEL. Es el nmero de arcos que deben ser recorridos para llegar a un determinado nodo. Por
definicin la raz tiene nivel 1.
ALTURA. Es el mximo nmero de niveles de todos los nodos del rbol. Equivale al nivel ms alto
de los nodos ms 1.
PESO. Es el nmero de nodos terminales del rbol
LONGITUD DE CAMINO. Es el nmero de arcos que deben ser recorridos para llegar desde la
raz al nodo X. Por definicin la raz tiene longitud de camino 1, y sus descendientes directos
longitud de camino 2 y as sucesivamente.
ARBOLES GENERALES
Un rbol es un TDA que consta de un conjunto de I nodos y una relacin H (paternidad) entre los
nodos tal que:
Hay un nodo especialmente designado, llamado la raz del rbol A.
Arboles
Pgina 17
A los nodos que no son races de otros subrboles se les denomina hojas del rbol A, o sea, no tiene
sucesores o hijos.
Arboles
Pgina 18
rbol Completo de nivel n: es un rbol en el que cada no donde nivel n es una hoja y cada nodo de
nivel menor que n tiene al menos un subrbol no vaco
Recorrido preorden
Arboles
Pgina 19
Recorrido postorden
Arboles
Pgina 20
CONCLUSIONES
De este trabajo se podra decir que los rboles se definen como un conjunto finito de elementos
llamados nodos. En estos casos se puede usar terminologa de relaciones familiares para descubrir
las relaciones entre los nodos de un rbol; y que un rbol puede ser implementado fcilmente en una
computadora. Es bueno hacer nfasis en esto ya que se puede saber mucho sobre lo que tiene que
ver con los rboles; entre las cosas que podemos mencionar se encuentra la raz, los nodos de un
rbol y la diferencia entre nodos sucesores y nodos terminales, como se muestran en el contenido
del trabajo.
BIBLIOGRAFIAS
Asignatura: Estructura de Datos Avanzada
Tema: rboles
Centro de Estudio de Ingeniera de Sistemas (CEIS)
Instituto Superior Politcnico Jos Antonio Echeverra (CUJAE)
Arboles binarios de bsqueda.ppt
ESTRUCTURAS DE DATOS RBOLES.pdf
Arboles
Pgina 21