Universidad de Costa Rica
|
|
Duración: Ochenta minutos. Lea bien el examen antes de hacerlo. El examen es a libro abierto. Cuenta la documentación. Cuenta la redacción y la ortografía. Puede hacer el examen con lápiz. Resuelva todas las preguntas. ¡No haga más de lo que se le pide!
1) [50 pts] Una cola de prioridad se puede implementar usando un vector si al agregar los valores con "
push()
"
se mantiene el orden ascendente del vector. Para ver cuál
es el valor máximo, basta invocar
"top()
"
que retornará el último elemento del vector. Es
más fácil de implementar
"pop()
"
porque este método simplemente remueve el valor del final
del vector. En sus respuestas debe usar el
Rep
del vector extendible de la
tercera tarea.
1.a) [0 pts]
Dibuje el
modelo para la nueva clase "ColaPrioridad
".
1.b) [9 pts]
Especifique e
implemente la
operación
"ColaPrioridad::top()
" para que el vector extendible de la tarea programada pueda funcionar como una cola de prioridad.
1.c) [9 pts]
Especifique e implemente la operación
"pop()
".
1.d) [23 pts]
Especifique e implemente la operación
"push()
".
1.e) [9 pts] Escriba un programa completo que reciba varios números y los imprima ordenados, en orden descendente. Use su cola de prioridad.
2) [50 pts] El vector circular tiene la propiedad de que permite trasladar desde un lugar a otro un subarreglo (en forma circular). Por ejemplo, si el vector tuviera almacenado el valor "
NoPuedoMas
", al trasladar "Puedo
" desde
el medio hacia el final el valor almacenado sería
"MasNoPuedo
".
2.a) [8 pts]
Dibuje el
modelo para su clase "VectorCircular
".
VectorCircular
. Incluya el
Rep, la
operación para trasladar subarreglos y el operador de
subíndices.
Recuerde que la diferencia entre "definir" y "declarar" un objeto
en C++ es que las declaraciones se ponen en los archivos de
encabezados <*.h> y <*.hpp> ,
mientras que las definiciones están en los archivos de
implementación <*.c> y
<*.cpp> .
|
2.c) [16 pts] Especifique e implemente el operador de subíndices. Incluya ejemplos de uso.
2.d) [18 pts] Especifique e implemente la operación para trasladar subarreglos. En su implementación debe evitar copiar o mover valores. Incluya ejemplos de uso en su especificación.
Adolfo Di Mare <adolfo@di-mare.com>.
|