Implementa una lista doblemente enlazada.
Al igual que un array, una lista enlazada es una estructura de datos lineal y sencilla. Varios tipos de datos comunes se pueden implementar usando listas enlazadas, como colas, pilas y arrays asociativos.
Una lista enlazada es una colección de elementos de datos llamados nodos. En una lista simplemente enlazada, cada nodo contiene un valor y un enlace al siguiente nodo. En una lista doblemente enlazada, cada nodo también contiene un enlace al nodo anterior.
Vas a escribir una implementación de una lista doblemente enlazada. Implementa un Node que contenga un valor y punteros al siguiente nodo y al anterior. Luego implementa una List que contenga referencias al primer y último nodo y ofrezca una interfaz similar a la de un array para agregar y eliminar elementos:
push (insertar un valor al final);pop (eliminar un valor del final);shift (eliminar un valor del frente).unshift (insertar un valor al frente);Para mantener tu implementación simple, los tests no cubrirán condiciones de error.
En concreto: nunca se llamará a pop ni a shift sobre una lista vacía.
Lee más sobre las listas enlazadas en Wikipedia.
Regístrate en Exercism para aprender y dominar Nim con 70 ejercicios y mentoría humana real, todo gratis.