Está en la página 1de 10

ESTRUCTURA DE DATOS II

ROTACIONES EN ÁRBOLES AVL


PROFESOR:

Ing. Evans Balcazar Veizaga


Rotaciones de Nodos   :
Los reequilibrados se realizan mediante rotaciones,
en el siguiente punto veremos cada caso, ahora
vamos a ver las cuatro posibles rotaciones que
podemos aplicar y son Simples y Dobles.
 Rotación simple a la derecha (SD):

 Rotación simple a la izquierda (SI):

 Rotación doble a la derecha (DD):

 Rotación doble a la izquierda (DI):


AVL – Definición Formal:
Definición del altura de un árbol
Sea T un árbol binario de búsqueda y sean Ti y Td sus subárboles, su altura H(T),
es:
 0 si el árbol T está vacío
 1 + max(H(Ti),H(Td)) si no lo está
Definición de árbol AVL
Sea T un árbol binario de búsqueda con Ti y Td siendo sus subárboles izquierdo y
derecho respectivamente, tenemos que:
Si T es vacío, es un árbol AVL
Si T es un ABB no vacío, es AVL si (si y sólo si):
 Ti y Td son AVL y
 H(Ti) − H(Td) = − 1, 0 ó + 1 (factor de equilibrio)
Rotación Simple a la Derecha:
Se usará cuando el subárbol izquierdo de un nodo sea 2 unidades más alto que el
derecho, es decir, cuando su FE sea de -2. Y además, la raíz del subárbol
izquierdo tenga una FE de -1, es decir, que esté cargado a la izquierda.
1. Pasamos el subárbol derecho del nodo Q
Arbol AVL Final
como subárbol izquierdo de P. Esto
mantiene el árbol como ABB, ya que todos
los valores a la derecha de Q siguen estando
a la izquierda de P.
2. El árbol P pasa a ser el subárbol derecho del
nodo Q.
3. Ahora, el nodo Q pasa a tomar la posición
del nodo P, es decir, hacemos que la entrada
al árbol sea el nodo Q, en lugar del nodo P.
Previamente, P puede que fuese un árbol
completo o un subárbol de otro nodo de
menor altura.
Rotación Simple a la Izquierda:
Se usará cuando el subárbol derecho de un nodo sea 2 unidades más alto que el
izquierdo, es decir, cuando su FE sea de 2. Y además, la raíz del subárbol
derecho tenga una FE de 1, es decir, que esté cargado a la derecha.
1. Pasamos el subárbol izquierdo del nodo Q
Arbol AVL Final
como subárbol derecho de P. Esto
mantiene el árbol como ABB, ya que todos
los valores a la izquierda de Q siguen
estando a la derecha de P.
2. El árbol P pasa a ser el subárbol izquierdo
del nodo Q.
3. Ahora, el nodo Q pasa a tomar la posición
del nodo P, es decir, hacemos que la entrada
al árbol sea el nodo Q, en lugar del nodo P.
Previamente, P puede que fuese un árbol
completo o un subárbol de otro nodo de
menor altura.
Rotación Doble a la Derecha:
Se usará cuando el subárbol izquierdo de un nodo sea 2 unidades más alto que el
derecho, es decir, cuando su FE sea de -2. Y además, la raíz del subárbol
izquierdo tenga una FE de 1, es decir, que esté cargado a la derecha.

Arbol AVL Final

4. Haremos una rotación simple de Q a la


izquierda.
5. Después, haremos una rotación simple
de P a la derecha.
Rotación Doble a la Izquierda:
Se usará cuando el subárbol derecho de un nodo sea 2 unidades más alto que el
izquierdo, es decir, cuando su FE sea de 2. Y además, la raíz del subárbol
derecho tenga una FE de -1, es decir, que esté cargado a la izquierda. Se trata del
caso simétrico del anterior.
Árbol AVL Final

4. Haremos una rotación simple de Q a la


derecha.
5. Después, haremos una rotación simple
de P a la izquierda.
Practica 2:
1. Realice una definición para el ADT Nodo
para de un ADT árbol AVL.
2. Realice la definición del ADT árbol AVL.
3. Implemente el procedimiento para obtener la
altura de un árbol.
4. Implemente el procedimiento para calcular
FE (Factor de Equilibrio del árbol)
¿Ahora a Trabajar?
INF-310 Estructura de Datos II

También podría gustarte