Documentos de Académico
Documentos de Profesional
Documentos de Cultura
º 3
Condiciones de Entrega
• El trabajo práctico deberá ser:
◦ Realizado en forma individual o en grupos de no más de tres alumnos.
◦ Publicado en un repositorio en GitHub creado por el equipo de trabajo cuya URL
deberá especificarse en la Actividad del Campus Virtual o cargado en la sección del
Campus Virtual correspondiente, junto con los archivos de código fuente que requieran
las consignas. Cada uno de ellos en sus respectivos formatos pero comprimidos en un
único archivo con formato zip, rar, tar.gz u otro.
▪ En caso de realizar el Trabajo Práctico en grupo, deberá indicarse el apellido y
nombre de los integrantes del mismo.
◦ Ser entregado el Lunes 08 de Mayo de 2023..
• El práctico será evaluado con nota numérica y conceptual (Excelente, Muy Bueno, Bueno,
Regular y Desaprobado), teniendo en cuenta la exactitud y claridad de las respuestas, los
aportes adicionales fuera de los objetivos de los enunciados y la presentación estética.
• Las soluciones del grupo deben ser de autoría propia. Aquellas que se detecten como
idénticas entre diferentes grupos serán clasificadas como MAL para todos los involucrados
en esta situación que será comunicada en la devolución.
• Los ejercicios que exijan codificación se valorarán de acuerdo a su exactitud, prolijidad
(identación y otras buenas prácticas).
Consideraciones
El equipo de cátedra considera que la corrección de los Trabajos Prácticos presentados
por los alumnos es más ágil si no se programan interfaces de consola de comandos que
exigen al usuario interactuar con la aplicación. Por tanto, se solicita no programar clases
cliente que hagan uso de la función input() o similares.
Página 1 de 4
Estructura De Datos - 2023 Trabajo Práctico N.º 3
Ejercicios
1. Programe la función verificar_cuit que utilizando una único patrón de expresión regular,
verifique si un str se corresponde con un número de CUIT/CUIL. Valores de prueba:
30-56225215-7 (válido).
27-38426233-9 (válido).
23-33016244-9 (válido).
A0-330B6244-C (no válido).
30562252157 (no válido).
305622157 (no válido).
5. En algunas aplicaciones que hacen uso de estructuras de datos Cola es común que un
elemento recientemente removido se inserte nuevamente al final de la estructura para ser
procesado posteriormente. Cree la clase ArrayQueueExt como clase derivada de
ArrayQueue y en ella programe el método rotate(). Su semántica deberá ser idéntica a la
combinación q.enqueue(q.dequeue()) pero más eficiente que realizar las dos
invocaciones separadas. C-6.29.
7. Implemente, en una clase con nombre QueueBasedStack, una pila utilizando como única
variable de instancia una cola. Deberá implementar los métodos push(), pop() y top(). C-
6.24
Página 2 de 4
Estructura De Datos - 2023 Trabajo Práctico N.º 3
en el punto anterior.
11. Programe la clase LinkedListExt de forma que extienda la clase LinkedList agregando
los métodos:
a) reverse(): invierte el orden de los elementos en la lista utilizando un enfoque
recursivo.
b) pop(): quita el último elemento de la estructura.
c) add_first(): agrega un elemento al principio de la estructura. C-5.16 y C-7.28
Página 3 de 4
Estructura De Datos - 2023 Trabajo Práctico N.º 3
Página 4 de 4