12 - Estructuras de Datos - Lista Circular Simple
12 - Estructuras de Datos - Lista Circular Simple
Una lista enlazada simplemente en la que el último elemento (cola) se enlaza al primer elemento
(cabeza) de tal modo que la lista puede ser recorrida de modo circular (“en anillo”).
En las listas lineales simples o en las dobles siempre hay un primer nodo (cabeza) y un último nodo
(cola). Una lista circular, por propia naturaleza, no tiene ni principio ni fin. Sin embargo, resulta útil
establecer un nodo a partir del cual se acceda a la lista y así poder acceder a sus nodos.
Las operaciones que se realizan sobre una lista circular son similares a las operaciones sobre
listas lineales, teniendo en cuenta que no hay primero ni último nodo, aunque sí un nodo de acceso
a la lista. Estas operaciones permiten construir el TAD ListaCircular y su funcionalidad
es la siguiente:
• Inicialización o creación.
• Inserción de elementos en una lista circular.
• Eliminación de elementos de una lista circular.
• Búsqueda de elementos de una lista circular.
• Recorrido de cada uno de los nodos de una lista circular.
• Verificación de lista vacía.
La construcción de una lista circular se puede hacer con enlace simple o enlace doble. La
implementación que se desarrolla en este apartado enlaza dos nodos con un enlace simple.
Se declara la clase Nodo, con el campo dato y enlace, y la clase ListaCircular con el puntero de acceso a
la lista, junto a los métodos que implementan las operaciones. Los elementos de la lista pueden ser de
cualquier tipo, se puede abstraer su tipo en otra clase, por ejemplo Elemento; con el fin de simplificar, se
supone un tipo conocido.
String dato;
Nodo siguiente;
Adicionalmente cuenta con los métodos para realizar las operaciones de:
● Inicializar lista
● Insertar un nodo
● Eliminar de un nodo
● Buscar elemento en la lista
● Recorrer la lista
● Comprobar si la lista está vacía.
3. Inicializar lista
Para inicializar una lista, se usa el constructor de la clase, esta operación consiste en definir el
atributo cabeza a null (lista vacía).
public Lista()
{
lc= null;
}
return lista;
}