Está en la página 1de 2

Estructura de Datos Laboratorio 4

Profesor: Joel Fuentes Ayudante: Gaspar Soto

Oto no 2013

Se requiere implementar la estructura de datos Arbol AVL. Para esto debe se proveen las siguientes clases: BinaryNode.java (implementaci on completa) AVLTree.java (implementaci on parcial) Rotations.java (implementaci on completa) DuplicateItemException.java (implementaci on completa) ItemNotFoundException.java (implementaci on completa) S olo deber a implementar la inserci on que incluye rotaci on para que el arbol mantenga la propiedad de AVL. Para este n debe implementar los siguientes m etodos: public void insert(AnyType x) Inserta el tem x en el arbol. Debe considerar que, al tratarse de un arbol AVL, cada vez que ingrese un tem debe vericar si el arbol est a balanceado o no; en el caso de no estar balanceado debe aplicar las rotaciones de la clase Rotations que denen m etodos para cada caso. private BinaryNode<AnyType> insert(AnyType x, BinaryNode<AnyType> t) Inserta el tem x en el sub arbol. Ayuda: considere el mismo funcionamiento de inserci on que se aplica para el ABB. public BinaryNode<AnyType> findUnbalance(BinaryNode<AnyType> t) Busca y retorna el nodo en el arbol donde se produce un desbalance con sus sub arboles.

private boolean unbalance(BinaryNode<AnyType> t) Retorna verdadero si el nodo t recibido por par ametro es la ra z de un desbalance. Considere que un sub arbol se encuentra balanceado si |height(t.lef t) height(t.right)| 1 public static <AnyType> int height(BinaryNode<AnyType> t) Calcula y retorna la altura del sub arbol t. Finalmente debe probar el arbol AVL con el siguiente m etodo main:
public static void main ( String [] args ) { AVLTree < Integer > t = new AVLTree < Integer >(); System . out . println ( " Prueba AVL " ); // ingreso de elementos t . insert (6); t . insert (4); t . insert (8); t . insert (9); t . insert (1); t . insert (5); t . insert (3); t . insert (2); t . insert (7); // posee algun desbalance ? BinaryNode < Integer > des = t . findUnbalance ( t . root ); System . out . println ( " desbalance : " + ( des != null ? des . element : " no hay " )); }

El cual debe imprimir: Prueba AVL desbalance :no hay Si el test indica que hay un desbalance en el arbol luego de realizar las inserciones, su implementaci on est a incorrecta.

También podría gustarte