¿Qué es una lista circular vinculada en Java?

Lista circular vinculada

La lista circular vinculada es una estructura de datos vinculados poco más complicada. En la lista circular enlazada podemos insertar elementos en cualquier lugar de la lista, mientras que en la matriz no podemos insertar elementos en ningún lugar de la lista porque está en la memoria contigua. En la lista circular vinculada, el elemento anterior almacena la dirección del siguiente elemento y el último elemento almacena la dirección del elemento inicial. Los elementos apuntan entre sí de forma circular que forma una cadena circular. La lista enlazada circular tiene un tamaño dinámico, lo que significa que la memoria se puede asignar cuando sea necesario.

Implementación de la lista enlazada circular

Implementar una lista enlazada circular es muy fácil y casi similar a la implementación de la lista enlazada lineal, con la única diferencia de que, en la lista enlazada circular, el último nodo tendrá su próximo punto al encabezado de la lista. En la lista enlazada lineal, el último nodo simplemente contiene NULL en su próximo puntero.

Nodo de clase
{public:
datos int;
// puntero al siguiente nodo
nodo * siguiente;
nodo()
{
datos = 0;
siguiente = NULL;
}
nodo (int x)
{
datos = x;
siguiente = NULL;
}
}

La lista enlazada circular es cuando el último nodo en la lista enlazada apunta al primero.
Una aplicación de ejemplo será “Semáforos”. Van como Verde-> Amarillo-> Rojo y luego regresan a Verde.
¿Cómo crear uno? ¡Realmente fácil!
Cree la clase base primero:


public class List{
String color;
List next; public List(String color) {
this.color=color;
}
}


public class List{
String color;
List next; public List(String color) {
this.color=color;
}
}

Ahora que tenemos lista la clase base, si haces esto es principal:


List list = new List("Green");
List temp = list; // we should have the pointer to green so that we can make it Circular later
list.next = new List("Yellow") ;
list.next.next= new List("Red") ;
// now we need to set the next pointer back to the first one
list.next.next.next = temp;
// now the next link is the first one!

Espero que entiendas ahora;)

More Interesting

¿Es cierto que si entendemos los algoritmos podemos entender todos los programas difíciles de todos los idiomas?

¿Por qué los marcos para componer música aleatoria algorítmica como SoundHelix no son más populares?

¿Qué es el algoritmo de Quora y cómo funciona?

En plataformas de programación competitivas como TopCoder y CodeChef, ¿cómo sé que una competencia o proyecto es bueno para participar?

¿Cuál es la técnica de clasificación eficiente para organizar los libros en una biblioteca?

¿Por qué es 5n + 8n ^ 2 + 100n ^ 3 = O (n ^ 4)?

¿Cuáles son las características de los árboles de coníferas y cuáles son algunas plantas / árboles con aspectos similares?

¿Es posible implementar dos pilas usando una matriz?

Cómo escribir un programa para implementar la búsqueda binaria

¿Cuál es la necesidad de estructuras de datos? ¿Por qué aprendemos estructuras de datos y algoritmos?

¿Cuál es el enfoque más eficiente para resolver problemas de factorización media en SPOJ?

Cómo comenzar a aprender algoritmos y estructuras de datos desde cero

¿Cómo un programa de razonamiento poco preciso asigna 8 gb de memoria en 3 segundos?

¿En cuánto tiempo puedo ser un profesional en la resolución de problemas en algoritmos y estructuras de datos si empiezo hoy sin ningún conocimiento previo?

El comportamiento emergente se encuentra en el núcleo de las ciencias físicas y de la vida: posiblemente por conveniencia computacional. ¿La teoría de la complejidad ofrece ideas aquí?