Montículos - Universidad Central de Venezuela

Anuncio
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS
ESCUELA DE COMPUTACIÓN
ALGORITMOS Y ESTRUCTURAS DE DATOS
PRÁCTICA DE MONTÍCULOS (HEAPS)
1.
2.
3.
Defina qué es un árbol binario completo y un árbol lleno.
¿Es posible implementar un Montículo empleando un árbol binario completo? ¿Se requiere de otra característica en el áarbol?
Dada la siguiente definición de clase:
Class Monticulo
Nodo<Integer> ^heap;
Integer tam;
Public Procedure Monticulo(Integer t)
tam=t;
heap=new Integer[t];
EndProcedure
Private Procedure Hundir();
//ya está implementado
Private Procedure Flotar();
//ya está implementado
Public Procedure Insertar(Integer elem);
Public Integer Remover();
Public Integer Tope();
Public Integer Tamaño();
EndClass
Implemente los métodos públicos de la clase Monticulo. Haga uso de las primitivas Hundir y Flotar para implementar Insertar y
Remover.
4. Para la clase Montículo definida anteriormente agregue métodos que permitan mezclar dos heaps con y sin claves repetidas,
haciendo uso de primitivas y con el siguiente prototipo:
Procedure Mezclar(Montículo M); //el resultado de la mezcla queda en la clase Montículo que invoca la mezcla.
5. Implemente un Montículo utilizando apuntadores en lugar de un arreglo. Compare la complejidad en tiempo y en espacio de esta
implementación versus la de arreglo.
6. Dado el nodo raíz de un árbol binario, implemente una función que verifique si el árbol cumple la propiedad de montículo.
GDAYED/2013
1
Descargar