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>.
|
|
|