Tiene una clase llamada Nodo con dos variables de instancia llamadas next y data. Se denominan variables de instancia porque pertenecen a las instancias de esta clase en lugar de a la clase misma. Es decir, su clase es básicamente una plantilla (o modelo) para objetos que tendrán su propio valor de datos y su próximo valor.
Para crear una instancia de la clase Node, debe llamar al constructor y pasar los parámetros necesarios. En tu caso, el constructor es;
public Node(int d) {
data = d;
}
Para llamar a este constructor se usa la nueva palabra clave (en Java supongo) de esta manera;
Node x = new Node(10);
Y tenga en cuenta que debe proporcionar un valor entero al constructor. En el cuerpo del constructor (entre {}) se ve que los datos variables se asignan al valor en d, que es el valor que se pasa al constructor, en este ejemplo, el valor 10. Ahora tiene un objeto de tipo Nodo con el valor 10 como datos y un nulo siguiente nulo.
En ese objeto, ahora puede llamar al método appendToTail(). Digamos que hacemos esto:
x.appendToTail(20);
Permite rastrear lo que sucede.
Node end = new Node(d);
Un nuevo nodo denominado extremo se crea y establece el valor 20 a los datos (recordar que d tiene el valor 20, por ahora, ya que es el valor que le pasamos cuando estábamos llamando el método). Este es un nodo totalmente independiente de x con su propio valor único para los datos.
Node n = this;
esto es una autorreferencia al objeto actual. Como llamamos a este método en x, este es el mismo objeto que x.
while (n.next != null) {
n = n.next;
}
Este bucle while se va a empezar a buscar el final de la lista yendo desde el nodo actual al siguiente nodo hasta el siguiente nodo es nulo. Como el único nodo que creamos hasta ahora es x, entonces n.next es en realidad nulo, por lo que el ciclo while no se ejecuta esta vez.
n.next = end;
Ahora estamos estableciendo el siguiente valor de n (que es x) en el extremo del nodo que se creó. Ahora tiene una lista como esta:
10 -> 20 -> null
Supongamos que se va a hacer la siguiente llamada:
x.appendToTail(30);
Entonces una cosa similar sucede excepto cuando llegue al bucle mientras que el valor es n.next no nulo, entonces ingresa al cuerpo del ciclo y asigna n para apuntar a n.next, que en nuestro ejemplo es el nodo con 20. La siguiente iteración del ciclo produciría nulo, por lo que el ciclo se cerrará y el nuevo nodo con los datos 30 se establecerán en el siguiente valor del último nodo en la lista. Entonces usted tendrá:
10 -> 20 -> 30 -> null
¿Qué idioma es este? –