/*
Este ejemplo implementa una lista enlazada en Java, incluyendo la clase 
para el nodo y la clase para la lista enlazada que gestiona los nodos.
*/

// Define la estructura de un nodo individual dentro de la lista enlazada.
class Nodo {
    int dato;             // Campo para almacenar el dato entero del nodo.
    Nodo siguiente;         // Campo para el enlace al siguiente nodo en la lista.

    // Constructor de Nodo que inicializa el nodo con un dato y establece el siguiente a null.
    Nodo(int dato) {
        this.dato = dato;            // Asigna el dato proporcionado al campo 'dato'.
        this.siguiente = null;      // Inicializa el enlace 'siguiente' a null.
    }
}

// Gestiona las operaciones de la lista enlazada, incluyendo la inserción de nodos y su visualización.
class ListaEnlazada {
    Nodo cabeza;          // Puntero al primer nodo de la lista.

    // Constructor de ListaEnlazada que inicializa la cabeza de la lista a null.
    ListaEnlazada() {
        cabeza = null;    // Inicializa la cabeza de la lista a null.
    }

    // Agrega un nodo al inicio de la lista con el dato proporcionado.
    void agregarAlInicio(int dato) {
        Nodo nuevoNodo = new Nodo(dato);  // Crea un nuevo nodo con el dato.
        nuevoNodo.siguiente = cabeza;     // Establece el siguiente del nuevo nodo a la cabeza actual.
        cabeza = nuevoNodo;               // Actualiza la cabeza para apuntar al nuevo nodo.
    }

    // Imprime todos los nodos de la lista desde la cabeza hasta el final.
    void imprimirLista() {
        Nodo temporal = cabeza;          // Comienza desde la cabeza de la lista.
        while (temporal != null) {       // Itera mientras haya nodos en la lista.
            System.out.print(temporal.dato + " -> ");  // Imprime el dato del nodo actual.
            temporal = temporal.siguiente;            // Avanza al siguiente nodo.
        }
        System.out.println("NULL");      // Imprime 'NULL' al final para indicar el fin de la lista.
    }
}

// Clase principal que demuestra la creación y manipulación de una lista enlazada.
public class Main {
    public static void main(String[] args) {
        ListaEnlazada lista = new ListaEnlazada();  // Crea una instancia de ListaEnlazada.

        // Agrega varios elementos al inicio de la lista.
        lista.agregarAlInicio(10);  // Agrega el número 10 al inicio de la lista.
        lista.agregarAlInicio(20);  // Agrega el número 20 al inicio de la lista.
        lista.agregarAlInicio(30);  // Agrega el número 30 al inicio de la lista.

        // Imprime la lista para mostrar su contenido.
        lista.imprimirLista();      // Imprime todos los nodos de la lista.
    }
}

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: