Rotaciones y balanceo en arboles AVL
Fuente: Material del curso — Arboles.pdf
Enunciado
Un arbol AVL es un arbol binario de busqueda (BST) auto-balanceado donde, para cada nodo, la diferencia de alturas entre sus subarboles izquierdo y derecho (factor de balance) es como maximo 1:
(a) Inserte los siguientes valores en orden en un arbol AVL inicialmente vacio:
Para cada insercion:
- Muestre el arbol despues de insertar el nodo (antes de balancear).
- Calcule el factor de balance de cada nodo.
- Si se detecta un desbalance (), identifique el tipo de rotacion necesaria:
- Rotacion simple a la derecha (caso izquierda-izquierda)
- Rotacion simple a la izquierda (caso derecha-derecha)
- Rotacion doble izquierda-derecha (caso izquierda-derecha)
- Rotacion doble derecha-izquierda (caso derecha-izquierda)
- Muestre el arbol despues de la rotacion.
(b) Despues de insertar todos los valores, muestre el arbol AVL final con los factores de balance de cada nodo.
(c) Cual es la altura maxima que puede tener un arbol AVL con nodos? Compare con la altura maxima de un BST sin balanceo.
(d) Explique por que todas las operaciones (busqueda, insercion, eliminacion) en un arbol AVL tienen complejidad garantizada de , a diferencia de un BST regular.
(e) Cual es el costo adicional (overhead) de mantener el arbol balanceado? En que escenarios vale la pena usar un AVL en lugar de un BST simple?