Documente Academic
Documente Profesional
Documente Cultură
ALGORITMIA
Segundo Examen
(Segundo Semestre 2018)
Duración: 3 horas
Nota:
Parte Obligatoria
Pregunta 1 (7 puntos)
Una secuencia de números enteros se llama biotónica si los números primero aumentan y luego decrecen.
Por ejemplo la secuencia de números {2, 5, 7, 12, 10, 6, 4, 1} es una secuencia biotónica (note cómo la
secuencia empieza en 2, aumenta hasta 12 y luego decrece hasta 1). Note también que, por definición,
una secuencia que sólo crece o sólo decrece también es una secuencia biotónica.
Representar una secuencia biotónica con una lista doblemente enlazada. En esta parte
implementar las estructuras y funciones de manejo principales de la lista doblemente enlazada.
(2 puntos).
Ordenar la secuencia biotónica (representada como una lista doblemente enlazada) en un
tiempo de complejidad O(n), donde n es el número de elementos de la secuencia. (5 puntos).
Pregunta 2 (6 puntos)
Un banco desea implementar una cola con prioridad para la asignación de turnos a sus usuarios, por tal
motivo clasifica a sus usuarios en tres tipos: No clientes, Clientes normales y clientes Vip. La cola a
implementar debe brindar prioridad en atención a los clientes Vip, luego a los Clientes normales y
finalmente a los No clientes. Este proceso de atención tiene una sola excepción: un Cliente normal solo
puede esperar a que prioricen a 3 clientes Vip antes que a él desde su registro en el banco, por tal motivo
si llega un cuarto cliente Vip, su turno será posterior al cliente Normal en espera.
Pregunta 3 (7 puntos)
Una secuencia de paréntesis se llama regular si los paréntesis están balanceados (es decir los símbolos de
apertura corresponden bien con los símbolos de cierre). Por ejemplo, las secuencias “( ( ) ) ( )” y “( )” son
regulares, mientras que las secuencias “) (” y “( ( )” no son regulares.
Implementar un programa en C (que utilice el TAD Pila) dada una cadena de caracteres que sólo contienen
los caracteres “(” y “)”, calcule el tamaño de la secuencia regular más larga, así como el número de
secuencias regulares que hay en la cadena de entrada. Si la cadena de entrada no contiene ninguna
secuencia regular, imprimir como resultado “0 0”.
Ejemplos
Entrada Salida
)((())))(()()) 6 2
))( 0 0
Nota: Otros ejemplos de entradas y salidas esperadas son proporcionadas en el archivo pilas_ejemplos.txt
en PAIDEIA.
Pregunta 4 (7 puntos)
La facultad de ingeniería desea realizar el proceso de asignación de docentes a un aula de clases específica
para toda la semana, por tal motivo se debe implementar un árbol binario que permita realizar esta tarea
y evitar cruces de horarios para finalmente imprimir la estructura en orden.
Ivan Sipiran