You are on page 1of 26

Estructuras de Datos

Arboles
Un rbol es una estructura de datos no lineal en
la que cada nodo puede apuntar a uno o varios
nodos.

Arboles
Conceptos:
Nodo Raz
Es el nodo donde comienza el rbol, cada rbol tiene un nico
nodo raz desde el cual cuelgan todos sus descendientes.

Nodo Rama
Llamado nodo interior, es un nodo cualquiera que puede tener
hijos, todo nodo que no es raz ni hoja.

Nodo Hoja
Llamado nodo terminal, es un nodo cualquiera que no tiene
hijos.

Nodo Hermano
Cualquier nodo que sea hijo del mismo padre.

Arboles
Conceptos:
Camino
Llamado tambin ruta, son los enlaces que van de un nodo hasta
otro.

Rama
Cualquier camino que termine en una hoja.

Nivel del nodo


Longitud del camino desde el nodo raz al nodo especifico mas
uno.

Altura del rbol


Llamado tambin profundidad, es igual al nivel mas alto de los
nodos del rbol

Arboles
Conceptos
Peso del rbol
Numero de nodos terminales, hojas.

Grado de un nodo
Numero de subrboles que tiene un nodo.

Grado de un rbol
Numero mximo de todos los nodos del rbol.

Arboles
Ventajas
Minimiza el tiempo de bsqueda de un elemento
dado.
Facilita la ordenacin jerrquica de un conjunto de
elementos.

Desventajas
Uso de algoritmos recursivos, pude incrementar el
tiempo de respuesta.
Mayor control al momento de eliminar elementos
para no perder la integridad de la estructura.

rbol Binario de Bsqueda


Un rbol binario de bsqueda (ABB), es un rbol
binario que cumple con las siguientes
caracterstica:
Todos los elementos almacenados en el subrbol
izquierdo de cualquier nodo x son menores que el
elemento almacenado en x
todos los elementos almacenados en el subrbol
derecho de x son mayores que el elemento
almacenado en x.

rbol Binario de Bsqueda


Ejemplo

Insercin
El proceso de insercin en un rbol binario sigue el
siguiente proceso recursivamente.
Si el rbol est vaco, el nuevo nodo ser el nodo raz.
Se verifica si el nuevo elemento es menor o mayor al elemento
actual.
Si es menor, se procede a verificar el subrbol izquierdo.
Si es mayor, se procede a verificar el subrbol derecho.

Insercin
Ejemplo
Suponga que se desea ingresar la siguiente secuencia de elementos:
10,5,14,7,12

Eliminacin
La eliminacin de cualquier nodo en un rbol sigue
el siguiente proceso:
Si el nodo no tiene descendientes simplemente se borra.
Si el nodo tiene un nico descendiente, este tomara su
lugar y el nodo ser eliminado.
Si el nodo tiene al menos un descendiente por rama, al
eliminar se debe mantener la estructura de un arbol
binario de bsqueda, para esto se sustituye el nodo a
eliminar por uno que cumpla cualquiera de las dos
polticas:
1. el mayor de los nodos menores
2. el menor de los nodos mayores.

Eliminacin
Ejemplo
Suponga que se desea eliminar el nodo raz, en este
caso se sustituye por el mayor de los nodos menores.

Recorridos de un rbol
Existen tres recorridos fundamentales en todo
rbol.
PreOrden
InOrden
PostOrden

Estos recorridos siguen un proceso recursivo por


naturaleza.

Recorridos de un rbol
PreOrden
1. Se recorre el nodo raz.
2. Se recorre el subrbol izquierdo en PreOrden
3. Se recorre el subrbol derecho en PreOrden

Ejemplo
a,b,d,c,e,f

Recorridos de un rbol
InOrden
1. Se recorre el subrbol izquierdo en InOrden
2. Se recorre la raz
3. Se recorre el subrbol derecho en InOrden

Ejemplo
b,d,a,e,c,f

Recorridos de un rbol
PostOrden
1. Se recorre el subrbol izquierdo en PostOrden
2. Se recorre el subrbol derecho en PostOrden
3. Se recorre la raz

Ejemplo
d,b,e,f,c,a

rbol AVL
Definicin
Bsicamente un rbol AVL es un rbol binario de
bsqueda al que se le aade una condicin de
equilibrio. Esta condicin es que para todo nodo la
altura de sus subrboles izquierdo y derecho pueden
diferir a lo sumo en 1

rbol AVL
Caractersticas
Un AVL es un ABB
La diferencia entre las alturas de los subrboles
derecho e izquierdo no debe excederse en ms de 1.
Cada nodo tiene asignado un peso de acuerdo a las
alturas de sus subrboles
Un nodo tiene un peso de 1 si su subrbol derecho es
ms alto, -1 si su subrbol izquierdo es ms alto y 0 si
las alturas son las mismas.
La insercin, recorrido y eliminacin en AVL es la
misma que en los ABB.

rbol AVL
Ejemplo
-1

1
2

-1
8

-1

1
0
3

Equilibrio
Equilibrio (n) = altura-der (n) altura-izq (n)
describe relatividad entre subrbol der y
subrbol izq.
+ (positivo) der mas alto (profundo)
- (negativo) izq mas alto (profundo)

Un rbol binario es un AVL si y slo si cada uno


de sus nodos tiene un equilibrio de 1, 0, + 1
Si alguno de los pesos de los nodos se modifica
en un valor no vlido (2 o -2) debe seguirse un
esquema de rotacin.

Operaciones sobre un AVL


Insertar
Balancear
Caso 1: rotacin simple izquierda RSI
Caso 2: rotacin simple derecha RSD
Caso 3: rotacin doble izquierda RDI
Caso 4: rotacin doble derecha RDD

Eliminar
Calcular Altura

Insertar
Se usa la misma tcnica para insertar un nodo en un
ABB ordenado

trazamos una ruta desde el nodo raz hasta un nodo


hoja (donde hacemos la insercin).
Insertamos el nodo nuevo.
Volvemos a trazar la ruta de regreso al nodo raz,
ajustando el equilibrio a lo largo de ella.
Si el equilibrio de un nodo llega a ser + - 2, volvemos a
ajustar los subrboles de los nodos para que su
equilibrio se mantenga acorde con los lineamientos AVL
(que son +- 1)

Balancear
Caso 1: Rotacin simple izquierda RSI
Si esta desequilibrado a la izquierda y su hijo derecho tiene el
mismo signo (+) hacemos rotacin sencilla izquierda.

Balancear
Caso 2: Rotacin simple derecha RSD
Si esta desequilibrado a la derecha y su hijo izquierdo tiene el
mismo signo (-) hacemos rotacin sencilla derecha.

-1
0

Balancear
Caso 3: Rotacin doble izquierda RDI
Si est desequilibrado a la izquierda (FE < 1), y su
hijo derecho tiene distinto signo (+) hacemos
rotacin doble izquierda-derecha.

Balancear
Caso 4: Rotacin doble derecha RDD
Si esta desequilibrado a la derecha y su hijo izquierdo
tiene distinto signo () hacemos rotacin doble
derecha-izquierda

You might also like