Arboles AVL
Ing. Juan Ignacio Zamora M. M.Sc
Arboles AVL
 Desarrollados en 1962 por Adelson-
Velskii y Landis (AVL)
 Nacen debido a la diferencia
entre los rendimien...
Revision de Codigo
Arbol Equilibrado no Binario de Busqueda!
Generar un Arbol AVL :: Estrategias
Insertar y generar
un arbol AVL
binario de
busqueda
Ya se tiene un
Arbol Binario de
Bu...
Insercion de un Nodo : Proceso
 Recuerden que estamos trabajando con arboles binaries de busqueda. Se
debe inserter de la...
Caso 1: Rotacion Izq-Izq (ii)
 Se insertan C,B,A
 C irrumpe el factor de equilibrio
 Se hace una rotacion Izq-Izq
 Se ...
Caso 2: Rotacion Der-Der (dd)
 Se insertan A,B,C
 C irrumpe el factor de equilibrio
 Se hace una rotacion Izq-Izq
 Se ...
Caso 3: Rotacion Der-Izq (di)
0
B
A C0
0
0
C
B
A2
-1
n1
n
• n1.Izq = n2.Der
• n2.Der = n1
• n.Der = n2.Izq
• n2.Izq = n
• ...
Caso 4: Rotacion Izq-Der (id)
0
B
A C0
0
0
A
B
C-2
1 n1
n
• n1.Der = n2.Izq
• n2.Izq = n1
• n.Izq = n2.Der
• n2.Der = n
• ...
Resuelva en Papel
• Indique en cada caso,
que rotacion se debe
aplicar.
• Aplique el Algoritmo de
Rotacion para cada
Arbol...
Problem?
1.Utilizandos las estructuras de datos y las
clases Utree y UNode desarrolladas la
semana pasada desarrolle:
1.In...
Arboles AVL
Arboles AVL
Próxima SlideShare
Cargando en…5
×

Arboles AVL

1.493 visualizaciones

Publicado el

Tecnicas de Programacion Orientadas a Objetos
Licenciatura - ULACIT

Publicado en: Educación
0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
1.493
En SlideShare
0
De insertados
0
Número de insertados
957
Acciones
Compartido
0
Descargas
24
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.

Arboles AVL

  1. 1. Arboles AVL Ing. Juan Ignacio Zamora M. M.Sc
  2. 2. Arboles AVL  Desarrollados en 1962 por Adelson- Velskii y Landis (AVL)  Nacen debido a la diferencia entre los rendimientos del caso promedio O(logn) y el peor caso O(n) en la busqueda del arbol binario.  Los Arboles AVL son Arboles Binarios de Busqueda; los cuales estan definidos segun el Factor de Equilibrio (Fe) F L J H P -1 1 0 1 0 Fe = h(der) – h(izq)
  3. 3. Revision de Codigo Arbol Equilibrado no Binario de Busqueda!
  4. 4. Generar un Arbol AVL :: Estrategias Insertar y generar un arbol AVL binario de busqueda Ya se tiene un Arbol Binario de Busqueda, pero no esta balanceado
  5. 5. Insercion de un Nodo : Proceso  Recuerden que estamos trabajando con arboles binaries de busqueda. Se debe inserter de la misma forma que en el ABB.  Una vez que insertamos el nodo, debemos regresar por el mismo camino y vamos a actualizar el Fe de cada nodo. Si, esto quiere decir que la clase UNode ahora tiene una variable int Fe, que almacena el factor de Equilibrio.  En el momento en el cual se irrumpa la condicion de equilibrio, se debe proceder a re-acomodar el arbol con base a rotaciones.  Existen 4 principals violaciones al factor de equilibrio
  6. 6. Caso 1: Rotacion Izq-Izq (ii)  Se insertan C,B,A  C irrumpe el factor de equilibrio  Se hace una rotacion Izq-Izq  Se obtiene el sub arbol balanceado B J C B C-1 0 -2 -1 0 B J C 0 0 0n1 n • n.Izq = n1.Der • n1.Der = n • n = n1 Algoritmo - Rotacion
  7. 7. Caso 2: Rotacion Der-Der (dd)  Se insertan A,B,C  C irrumpe el factor de equilibrio  Se hace una rotacion Izq-Izq  Se obtiene el sub arbol balanceado B A 1 0 0 B A C 0 0 0 B C A2 1 n1 n • n.Der = n1.Izq • n1.Izq = n • n = n1 Algoritmo - Rotacion
  8. 8. Caso 3: Rotacion Der-Izq (di) 0 B A C0 0 0 C B A2 -1 n1 n • n1.Izq = n2.Der • n2.Der = n1 • n.Der = n2.Izq • n2.Izq = n • n = n2 n2 Algoritmo - Rotacion
  9. 9. Caso 4: Rotacion Izq-Der (id) 0 B A C0 0 0 A B C-2 1 n1 n • n1.Der = n2.Izq • n2.Izq = n1 • n.Izq = n2.Der • n2.Der = n • n = n2 n2 Algoritmo - Rotacion
  10. 10. Resuelva en Papel • Indique en cada caso, que rotacion se debe aplicar. • Aplique el Algoritmo de Rotacion para cada Arbol • Calcule los nuevos Factores de Equilibrio Caso:Alpha Caso:Beta Caso:Gamma Caso:Miu
  11. 11. Problem? 1.Utilizandos las estructuras de datos y las clases Utree y UNode desarrolladas la semana pasada desarrolle: 1.Insert-AVL(T,x), donde x es un UNode 2.Balance-AVL(T,x) balancea un arbol a partir del nodo x 3.Delete-AVL(T, v) donde v es el valor del nodo a borrar Esta practica junto a todas las clases desarrolladas se suben al foro “AVL”.

×