Listas Circulares Simplemente Enlazadas
En este ejemplo, hemos creado dos clases: Nodo
y ListaCircular
Simple. La clase Nodo
representa los nodos individuales de la lista con su dato y una referencia al siguiente nodo. La clase ListaCircular
Simple contiene los métodos para insertar elementos en la lista circular y mostrar su contenido.
Compilar: javac Main.java
class Nodo {
int dato;
Nodo siguiente;
public Nodo(int dato) {
this.dato = dato;
this.siguiente = null;
}
}
class ListaCircularSimple {
Nodo inicio;
public ListaCircularSimple() {
inicio = null;
}
public void insertar(int dato) {
Nodo nuevo = new Nodo(dato);
if (inicio == null) {
inicio = nuevo;
inicio.siguiente = inicio;
} else {
Nodo actual = inicio;
while (actual.siguiente != inicio) {
actual = actual.siguiente;
}
actual.siguiente = nuevo;
nuevo.siguiente = inicio;
}
}
public void mostrar() {
if (inicio != null) {
Nodo actual = inicio;
do {
System.out.print(actual.dato + " ");
actual = actual.siguiente;
} while (actual != inicio);
System.out.println();
} else {
System.out.println("La lista esta vacia.");
}
}
}
public class Main {
public static void main(String[] args) {
ListaCircularSimple lista = new ListaCircularSimple();
lista.insertar(10);
lista.insertar(20);
lista.insertar(30);
lista.insertar(40);
System.out.println("Lista circular:");
lista.mostrar();
}
}
Listas Circulares Doblemente Enlazadas
En este ejemplo, hemos creado una clase Nodo
que tiene tres atributos: el dato, una referencia al siguiente nodo y una referencia al nodo anterior. La clase ListaCircularDoble
contiene los métodos para insertar elementos en la lista circular doblemente enlazada y mostrar su contenido.
Compilar: javac Main.java
class Nodo {
int dato;
Nodo siguiente;
Nodo anterior;
public Nodo(int dato) {
this.dato = dato;
this.siguiente = null;
this.anterior = null;
}
}
class ListaCircularDoble {
Nodo inicio;
public ListaCircularDoble() {
inicio = null;
}
public void insertar(int dato) {
Nodo nuevo = new Nodo(dato);
if (inicio == null) {
inicio = nuevo;
inicio.siguiente = inicio;
inicio.anterior = inicio;
} else {
Nodo ultimo = inicio.anterior;
nuevo.siguiente = inicio;
nuevo.anterior = ultimo;
inicio.anterior = nuevo;
ultimo.siguiente = nuevo;
}
}
public void mostrar() {
if (inicio != null) {
Nodo actual = inicio;
do {
System.out.print(actual.dato + " ");
actual = actual.siguiente;
} while (actual != inicio);
System.out.println();
} else {
System.out.println("La lista está vacía.");
}
}
}
public class Main {
public static void main(String[] args) {
ListaCircularDoble lista = new ListaCircularDoble();
lista.insertar(10);
lista.insertar(20);
lista.insertar(30);
lista.insertar(40);
System.out.println("Lista circular doblemente enlazada:");
lista.mostrar();
}
}
También te puede interesar:
Pueder ir al artículo principal:
Códigos Sencillos hechos en Java
Muchisimas gracias, tremendo trabajo hermano.
Muchas Gracias Gran Aporte 😀
no me aparece nada lo abro y me aparecn puros simboloss
debes de utilizar eclipse importar los archivos del zip al eclipse para poder visualizarlos
aaaaaaaaaa genial gracias me salvaste la vida
parce esta muy vacano, como las convierto en circulares?
gracias
gracias parce excelente aporte
muchas gracias por el aporte me sirvio para entender listas, sigue asi amigo, saludos.
Gracias!!, estamos para colaborar! un saludo…
gracias por tu aporte
Muchas gracias por el aporte, en verdad me sirvio bastante para guiarme en mis trabajos de programacion… buen aporte a la comunidad…
Gracias totales…
De nada, ese es el objetivo, gracias a ti y a todos por valorarlo!!
saludos y gracias totales!
Hola amigo descargue el de listas circulares y salen cuatro documentos, como soy muy nuevo en esto no estoy seguro de lo que dicen; los cuatro documentos se pueden compilar tal y como se muestran alli? son la super clase y subclase?
El link està habilitado, busca: ListaCircularDoblementeEnlazada.tar.gz
hola disculpa pero por alguna razon no puedo descargar el archivo de listas dobles enlazadas no se si me lo pudieras mandar o habilitarlo porfa lo nesecito para estudiarlo
Hola quisiera q por el amor de dios me ayudes con un manual de c++ y bisual basic. Q sea super facil de aprender, si es posible. Necesito aprender eso a como de lugar. xfa
como puedo modificar un nodo que se encuentra en la mita de varios nodos en una agenda
hola q tal …sabes no se si tendras codigos de listas enlazadas y dobles pero en c++ para que lo publiques porfas…necesito para poder estudiarlo…haber si lo publicas en tu pagina..,..saludos..bye..
gracias por todo me salvan de una
sigan adelante
Soy novato en esto de la programacion, y considero que es un buen aporte
se le agradece