Ejercicios Listas Enlazadas PDF
Ejercicios Listas Enlazadas PDF
Ejercicios Listas Enlazadas PDF
co
Ejercicios de Listas en Java
1. Dada una dos listas l1 y l2 con enteros generados aleatoriamenté, realice métodos sobre
la clase Prueba que permitan:
• Las listas contienen elementos repetidos
• Las listas No contienen elementos repetidos
• Eliminar de la lista l1 sus elementos repetidos.
• Determinar si son iguales, esto es que sus elementos están en el mismo orden.
• Unir l1 con l2 en L3.
• Unir l1 con l2 en L4 siendo L4 ordenada ascendentemente.
2. Realice los métodos del punto 1, en la clase ListaX (simples, dobles o circulares):
a. public booelan contieneElemRepetidos()
b. public void eliminarElemRepetidos()
c. public void equals(ListaX<T> L2)
d. public void unir(ListaX<T> L2)
e. public void unir_Ordenado(ListaX<Y> L2).
4. La biblioteca “NADIE LEE NADA” desea sistematizar su proceso de inventario de libros. El sistema tendrá
las siguientes opciones:
• Registrar un libro nuevo.
• Borrar un Libro(s) dado su autor , dado su título o dado un año.
• Buscar un libro por :
• Título
• Nombre de autor
• Tema
• Imprimir listados :
• Por temas
• Por autor
• Por fecha de adquisición del libro(dado un mes, dado un año o dado un mes , año
y día).
Los libros se encuentran almacenados en una Lista L1. Hacer uso de los métodos
equals() y compareTo().
Class Libro
{
private String autor, tema, titulo;
private int agno, dia, mes; // Fecha de adquisición
}
MSC. Marco A. Adarme. E-mail: madarme@ufps.edu.co
Ejercicios de Listas en Java
Nota los temas de los libros pueden ser: 1. Ficción, 2. Terror y 3.Suspenso.
5. Dada Tres listas L1 , L2 y L3 con enteros generados aleatoriamenté crear una nueva lista que
contenga la suma de los elementos de las tres listas uno a uno, es decir los tres primeros, los tres
segundos y así sucesivamente. Las listas no necesariamente son de la misma longitud. Hacer a nivel
de Iteradores.
7. El profesor de Estructura de Datos desea elaborar un previo donde cada estudiante tenga un ejercicio
diferente , para ello ha creado una lista L1(ordenada por códigos) con la información de los códigos de
los estudiantes(Objetos de tipo Long) y un vector V(vector de String) con los ejercicios a realizar. Se
desea crear una Lista “R” de objetos tipo EstudiantePrevio donde cada estudiante aparezca con una
pregunta asignada, Recuerde que cada estudiante deberá tener una pregunta diferente. La asignación de
los ejercicios se hace en forma aleatoria. V y L1 tienen la misma longitud.
Class EstudiantePrevio
{
private long codigo; private
String ejercicio;
}
Por medio de un esquema (dibujo, grafico,…) represente los nodos creados para cada caso.
estudio; La gerencia decidió sancionar a los usuarios que hagan mal uso del servicio de urgencias; para tal
fin le pidió a su personal de sistemas(Un alumno de Estructura de Datos) que hiciera un programa en
lenguaje JAVA para dicha tarea. Suponga que el sistema inicialmente le genero dos(2) listados :
• Listado1: Usuarios afiliados a la EPS(solo cedulas). Información almacenada en una Lista Simple
Enlazada “L1”.
• Listado2: Usuarios (solo cedulas) que fueron atendidos en urgencias el mes pasado. Información
almacenada en una Lista Simple Enlazada “L2”.
Y tomando los listados anteriores Ud debe crear métodos que permitan:
Método 1. Crear una Lista “L3” con los usuarios ordenados por incidencia en los servicios de
urgencias( es decir la lista L3 quedara ordenada por la cedula que más se repite o la que más ha ido
a urgencias hasta la que menos ha ido).
Método 2. Crear una Lista “L4” con los usuarios que nunca han ido a los servicios de urgencias.
10. Tomando como referencia el ejercicio “7” , suponga que V contiene menos elementos que L1 ; cree la
Lista “R” donde los estudiantes que se encuentren en forma contigua no pueden tener el mismo
ejercicio. En este Punto los ejercicios pueden repetirse.
11. Dadas dos Listas enlazadas simples, en cuyos nodos se encuentra un digito binario (0 1) y la listas
representa dos numero binarios, elaborar métodos en la clase Prueba que permitan:
• Devolver la suma binaria en una lista simple enlazada.
• Devolver la resta binaria en una lista simple enlazada.
• Obtener el número decimal que representa la lista.
12. Dadas dos Listas(Dobles o simples) M y N, las cuales representan un polinomio, elaborar método que
devuelva en una lista L1 la Suma del polinomio M más N y en una Lista L2 la Multiplicación M*N. La lista
almacena elementos de Tipo Termino
Class Termino
{ private int exp;
private float base;
}
MSC. Marco A. Adarme. E-mail: madarme@ufps.edu.co
Ejercicios de Listas en Java
13. A un famoso “mago” se le desea hacer un programa en JAVA que le ayude con sus trucos. El mago tiene
una bolsa llena de fichas numeradas de “0” hasta “n” y una persona del público saco una de esas fichas.
El programa debe averiguar el número que hace falta para completar las fichas. Suponga que las fichas
se encuentran en una Lista Doblemente enlazada (L1). Implemente métodos únicamente sobre la clase
“Prueba” que averigüe el número que saco la persona y vuelva a colocarlo en la bolsa(es decir
insertarlo al final de L1). Se puede dar el caso de que la persona halla engañado al mago y no halla
sacado ninguna ficha. Por ejemplo: Si n=5 y se saco una ficha :
Si L1 0, 4, 5, 3, 2 NULL Numero que hace falta “1”
ENTONCES QUEDARIA L1 0, 4, 5, 3, 2, 1 NULL
15. Dada una lista Simple enlazada de caracteres, elaborar un método que elimine los elementos repetidos.
Los elementos repetidos ocupan posiciones sucesivas( La listas almacenan objetos tipo Carácter).
• Crear la Lista(con sus vectores, estos no necesariamente son del mismo tamaño).
• Obtener el mayor elemento del vector en una posición dada. El método recibirá la posición que ocupa el
nodo en la Lista.
• Añadir un número al final del vector en una posición dada. El método recibirá la posición que ocupa el
nodo en la Lista.
• Añadir un número al inicio del vector en una posición dada. El método recibirá la posición que ocupa el
nodo en la Lista.
• Obtener la suma de los elementos del vector en una posición dada. El método recibirá la posición que
ocupa el nodo en la Lista.
• Obtener la sumatoria de los elementos de todos los vectores de los nodos de la Lista.
• Obtener el elemento que más se repite en un vector de un nodo dado. El método recibirá la posición que
ocupa el nodo en la Lista.
17. Realice un programa en JAVA para llevar el control de notas de los estudiantes de Estructura de Datos. La
lista almacena objetos Tipo Estudiante:
• Insertar un estudiante con sus notas al sistema(recuerde que no pueden existir códigos repetidos).
• Borrar un estudiante dado su código.
• Obtener el promedio de las notas de un estudiante dado su código.
• Obtener el promedio general del grupo.
• Crear un vector(de objetos) con los estudiantes que reprobaron la materia.
• Crear un vector(de objetos) con los estudiantes que aprobaron la materia.
EJERCICIOS DE PREVIOS
• El banco "El centavo menos" desea sistematizar sus procesos de transacciones bancarias.
Actualmente no hay ningún sistema por lo que las personas dejan su recibo diligenciado y dinero y
al final del día el Banco hace las transacciones respectivas. EL banco ofrece tres transacciones para
sus clientes 1.consignación, 2. Retiros y 3. Transferencias(pasar dinero de una cuenta a otra). La
información de cada cuenta(cedula, N°. cuenta-ahorro , nombre y saldo actual) se almacena en una
lista doble enlazada L1(YA creada dinámicamente en memoria con objetos de tipo Cuenta) y las
transacciones(tipo-transacción que pueden ser 1 ,2 o 3 , N° cuenta destino y N° cuenta de origen
para el caso de transferencias y monto de la transacción) almacenados en un vector de "n"
posiciones R1(ya creados dinámicamente en memoria con objetos de tipo transacción). Realice un
programa en Java, que tome la lista y el arreglo de registros y actualice L1(consignación aumentaría
el saldo de la cuenta , retiro y transferencias disminuirá el saldo). Las transacciones que no se
puedan realizar por ejemplo por falta de fondos para un retiro y/o transferencias se debe generar
el mensaje de error respectivo (*** Fondos insuficientes para la Cuenta de Número XXXX en
operación YYYY***) donde YYYY es consignación, retiro o transferencia o si una cuenta no existe. El
programa debe:
• (Valor 1.0) Actualizar la ListaD<Cuenta> L1 tomando en cuenta
el arreglo de transacciones(el metodo devuelve el toString() de la L1 ya actualizado).
• (Valor 1.0) Borrar las cuentas de L1 que tengan fondos“0”.
• (Valor 1.0)Ordenar L1 por saldo actual (al final de las
transacciones).
Después de cada proceso se debe imprimir la Lista.
Recomendaciones:
• Las clases Cuenta y Transacción las puede encontrar en su carpeta de trabajo en la carpeta
Punto1.
• Imprima las cuentas y transacciones antes de comenzar a realizar el código. Estos métodos
ya se encuentran implementados.
• Ud puede añadir métodos a la clase Cuenta así como a la Clase Transacción si considera
necesario.
MSC. Marco A. Adarme. E-mail: madarme@ufps.edu.co
Ejercicios de Listas en Java
• Si la cuentaOrigen llega a ser “0” es por que el tipo de transacción es 1 o 2 y este solo
necesita es la cuenta destino para consignar o retirar.
• Suponga que en este banco Un cliente solo tiene una cuenta y estas son todas de ahorros.
• Los números de las cuentas se encuentran en desorden.
• Los métodos se deben realizar en la clase Banco.java. En la clase se especifica los métodos
que ud debe implementar aunque Ud puede utilizar todos los métodos auxiliares que
desee. NO PUEDE CAMBIAR LOS METODOS QUE YA SE ENCUENTRAN EN LA CLASE
Banco.JAVA.
3. Realice un MÉTODO SOBRE LA CLASE LISTA, QUE, dadas dos Listas L1 y L2 que representan borre
toda incidencia de L2 en L1(this), se debe además imprimir la Lista Resultante L1 y las veces que
se encontró L2 en L1.
Ud no puede utilizar ningún método de clase String, todas las operaciones se deben hacer sobre la
Lista Simple. El proceso se puede realizar si L1.getSize( )
>= L2.getSize( ).
Por ejemplo:
Si las listas fueran de ListaS<Character>:
L1=A-->B-->A-->C-->D-->E-->A-->E-->F-->R-->A-->B-->C-->D-->A-->
El programa deberá imprimir:
L1=A-->B-->A-->C-->D-->E-->A-->E-->F-->R-->A-->B-->C-->D-->A--
>B-->A-->B-->F-->Null
L2 se encontró 4 veces y La lista L1 quedo:
L1=A-->C-->D-->E-->A-->E-->F-->R-->C-->D-->F-->Null
NOTA: CADA PROGRAMA DEBE TENER LOS PAQUETES GUI, MUNDO Y UTIL CON UNA CLASE DE
PRUEBA. SE DEBE TOMAR EN CUENTA TODAS LAS VALIDACIONES QUE ASEGUREN EL CORRECTO
FUNCIONAMIENTO DEL SOFTWARE.