Listas Circulares Simples y Dobles en Java

Listas Circulares Simplemente Enlazadas

En este ejemplo, hemos creado dos clases: Nodo y ListaCircularSimple. La clase Nodo representa los nodos individuales de la lista con su dato y una referencia al siguiente nodo. La clase ListaCircularSimple 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

20 thoughts on “Listas Circulares Simples y Dobles en Java

  1. Muchas gracias por el aporte, en verdad me sirvio bastante para guiarme en mis trabajos de programacion… buen aporte a la comunidad…

    Gracias totales…

  2. 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?

  3. 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

  4. 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

  5. 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..

Deja un comentario