En post anteriores las listas enlazadas permiten almacenar valores de manera dinamica y de una forma ordenada.
Los usos de las listas enlazadas son mucho mas generales con respecto a la variante que usaremos hoy, estamos hablando de las listas circulares, estas tienen la peculiaridad de que cuando llegamos a su final al llamar el metodo next podemos volver a encontrar el mismo elemento inicial.
Nodo
El nodo esta compuesto de 3 atributos, data, next y prev donde data es elemento que guardara el nodo, next es el nodo siguiente y prev es el nodo anterior. Adjuntamos el codigo del nodo
Metodo append
El metodo agregar funciona de la siguiente manera:
Primer paso crear un nuevo nodo y agregar el nodo cabeza a una varibale temporal
Si el nodo cabeza es nulo, entonces el nuevo nodo se asigna a head y tambien a next y prev.
Si no es nulo, la lista se recorre de forma de forma contrara conviertiendo el nodo temporal en el prev de temp, y asignando a siguente el nuevo nodo, a prev el nodo temporal y a siguente head
Complejidad
La complegidad de esta lista cirular como podemos ver en el caso de la insercion es de O(1).
Recuerda que puedes colaborar en el repositorio para agregarle funcionalidades nuevas, tambien puedes descargar el repo y utilizarlas en tu proyecto
El archivo utilizado en esta entrada lo puedes encontrar aqui.