Rutas
/
Java
Java
/
Ejercicios
/
Lista enlazada
Lista enlazada

Lista enlazada

Media

Introducción

Estás trabajando en un proyecto para desarrollar un sistema de planificación de trenes para una red ferroviaria muy concurrida.

Se te ha pedido que desarrolles un prototipo para las rutas de tren del sistema de planificación. Cada ruta consta de una secuencia de estaciones de tren en las que se detiene un tren determinado.

Instrucciones

Tu equipo ha decidido usar una lista doblemente enlazada para representar cada ruta de tren del horario. Cada estación a lo largo de la ruta del tren estará representada por un nodo de la lista enlazada.

No tienes que preocuparte por las horas de llegada ni de salida de las estaciones. Cada estación se representará simplemente con un número.

Las rutas se pueden ampliar, añadiendo estaciones al principio o al final de una ruta. También se pueden acortar eliminando estaciones del principio o del final de una ruta.

A veces se cierra una estación y, en ese caso, hay que eliminarla de la ruta, aunque no esté ni al principio ni al final de esta.

El tamaño de una ruta no se mide por la distancia que recorre el tren, sino por el número de estaciones en las que se para.

Note

La lista enlazada es una estructura de datos fundamental en informática y se usa a menudo en la implementación de otras estructuras de datos. Como su nombre indica, es una lista de nodos enlazados entre sí. Es una lista de «nodos», en la que cada nodo se enlaza con su vecino o vecinos. En una lista simplemente enlazada, cada nodo se enlaza solo con el nodo que le sigue. En una lista doblemente enlazada, cada nodo se enlaza tanto con el nodo que viene antes como con el que viene después.

Si quieres profundizar en las listas enlazadas, echa un vistazo a este artículo, que las explica con dibujos muy claros.

Implementación

Este ejercicio presenta los genéricos. Para que las pruebas pasen, tienes que construir tu clase de forma que acepte cualquier tipo de entrada, por ejemplo Integer o String.

Los genéricos son útiles porque te permiten escribir código más general y reutilizable. Las implementaciones de List y Map de Java son ambas ejemplos de clases que usan genéricos. Si los usas, puedes construir un List que contenga Integers o una lista que contenga Strings o cualquier otro tipo.

Hay algunas restricciones en los tipos que se usan con los genéricos. Una de ellas es que, una vez que has construido un List que contiene Integers, no puedes meter Strings en él. Tienes que especificar qué tipo quieres introducir en la clase cuando la construyes, y esa instancia solo se puede usar después con ese tipo.

Por ejemplo, podrías construir una lista de Integers:

List<Integer> someList = new LinkedList<>();

Ahora someList solo puede contener Integers. También podrías hacer:

List<String> someOtherList = new LinkedList<>()

Ahora someOtherList solo puede contener Strings.

Otra restricción es que ningún tipo que se use con genéricos puede ser un tipo primitivo, como int o long. Sin embargo, todos los tipos primitivos tienen un tipo de referencia correspondiente, así que en lugar de int puedes usar Integer y en lugar de long puedes usar Long.

Puede ayudarte echar un vistazo a un ejemplo de caso de uso de los genéricos para empezar.


Fuente

Tema clásico de la informática
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Java Exercism

¿Listo para empezar Lista enlazada?

Regístrate en Exercism para aprender y dominar Java con 26 conceptos158 ejercicios y mentoría humana real, todo gratis.