Ejercicios Algoritmo y Estructura de Datos
Ejercicios Algoritmo y Estructura de Datos
Ejercicios Algoritmo y Estructura de Datos
1. EJERCICOS DE REPASO
1.1.
1.2.
Escribir un programa que lea una fecha en formato DD-MM-AAAA y calcule el nmero de
das transcurridos desde el da 1 de Enero de ese ao.
Imprimir el mayor, el menor, la suma de diez nmeros aceptados por teclado.
1.3.
1.4.
Dado un mes del ao, su nmero de das y el da de la semana en que comienza, realizar
un programa que muestre por pantalla la representacin del calendario correspondiente a
dicho mes.
1.5.
Realizar una aplicacin para gestionar cierta informacin de los empleados de una
empresa. El diseo (incompleto) de la aplicacin estar formado por dos clases: la clase
empleado y la clase empleadoPorHoras (que hereda de empleado), junto con un programa
principal que llama a las operaciones pblicas de ambas clases.
Clase empleado: contiene como datos privados el nombre del empleado y su nmero de
DNI. Adems, sus mtodos pblicos son: un constructor de la clase, dos operaciones
selectoras (GetNombre y GetDNI), y una operacin destructora de la clase.
Clase empleadoPorHoras: contiene como datos privados el coste horario de un empleado y
su nmero de horas trabajadas durante la semana. Adems, dispone de los siguientes
mtodos pblicos: un constructor de la clase (que requiere de su clase base el nombre y el
DNI del empleado) y una operacin llamada DevuelvePaga (que calcula la paga del
empleado multiplicando su coste horario por el nmero de horas trabajadas).
2. Recursividad
2.1.
2.2.
Implemente una funcin recursiva que, teniendo un array ingresado por teclado, me
devuelva la suma de todos sus elementos.
Modificar la bsqueda Binaria vista en clase de manera tal que sea una funcin recursiva.
3. Listas
3.1.
3.2.
Escribir un programa que permita agregar n enteros a una lista de nmeros aceptada
por teclado. El programa pregunta si debe agregar al principio, al final o en el medio y
agrega el elemento a la lista.
3.3.
Escribir un programa que permita eliminar elementos de una lista de nmeros aceptada
por teclado. El programa pregunta qu elemento borrar considerando que el primero por la
izquierda es el 1.
3.4.
Crear una funcin que dada dos listas enlazadas, pasadas como parmetro, devuelva
una lista enlazada que es la unin de las otras dos.
3.5.
3.6.
4. Pilas
4.1.
Realice un programa en C++ que llene una pila con las letras del alfabeto y las vaya
sacando.
Inicial: F->E->D->C->B->A
Final: E->D->C->B->A
4.2.
Escriba un programa que introduzca una palabra y utilice una pila para imprimir la
misma palabra invertida.
4.3.
Escribir una funcin Reemplazar que tenga como argumentos una pila con tipo de
elemento int y dos valores int: nuevo y viejo de forma que si el segundo valor aparece en
algn lugar de la pila, sea reemplazado por el segundo.
4.4.
Escriba una funcin que indique si dos pilas son iguales. Se entiende que dos pilas son
iguales cuando sus elementos son idnticos y aparecen en el mismo orden.
4.5.
5. Colas
5.1. Escribir un programa en C++, que lea cierta cantidad de enteros y luego determine: Cul
es el valor mayor, el valor menor y el promedio de todos los datos.
5.2.
Disee un programa que sea capaz de leer dos colas y mediante un mensaje indicar si
son iguales. Nota: los elementos constitutivos de las colas son caracteres.
5.3.
En un supermercado, se tiene slo una caja habilitada para que los clientes puedan
cancelar sus compras. La caja tiene prioridad para mujeres embarazadas. Dada esta
situacin, se pide que se genere un sistema que calcule la cantidad de productos comprados
por cada cliente y el monto total gastado, tambin la cantidad de embarazadas que
accedieron a la cola.
6. rboles
6.1.
6.2.
6.3.
Especificar la operacin contarPorNivel que devuelve el nmero de ndos del nivel isimo
de un rbol binario.
6.4.
7. Ordenamiento
7.1.
7.2.
7.3.
a.
b.
8. Bsqueda
8.1.
8.2.
Algoritmo de bsqueda secuencial e insercin para lista enlazada: Modificar los mtodos
o funciones miembro buscar y buscarRecursiva de la clase lista de tal manera que si no
encuentra el elemento buscado lo inserte.
8.3.
Escribir un algoritmo que dado una secuencia de nmeros ingresados por teclado vaya
generando un rbol balanceado. Modificar la Clase rbol vista en clase. Los datos
ingresados al rbol son de tipo char.
9. Hash table
9.1.
Probar el algoritmo visto en clase agregndole una funcin main.
9.2.
9.3.
Modificar el algoritmo visto en clase para que puedan eliminarse los registros. Una vez
eliminados, pueda hacerse un rehashing de la tabla.