es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Creando una lista enlazada mediante la entrada de datos.

Estoy tratando de obtener una LinkedList a partir de la entrada del usuario y todo funciona bien, pero no entiendo por qué. En el bucle while, constantemente estoy estableciendo ‘last’ como la entrada más reciente de num. Pero nunca actualizo ‘n1’ fuera del bucle, ¿entonces cómo sigue funcionando? ¿Cuándo se actualiza n1 y se guarda num?

“`csharp
public static Node<int> BuildList()
{
Console.WriteLine("Ingrese el número: -999 para finalizar");
int num = int.Parse(Console.ReadLine());
Node<int> n1 = new Node<int>(num);
if (num != -999)
{
Node<int> last = n1;
Console.WriteLine("Ingrese el número: -999 para finalizar");
num = int.Parse(Console.ReadLine());
Console.WriteLine("Si de nuevo");

<pre><code> while (num != -999)
{
last.SetNext(new Node<int>(num));
last = last.GetNext();
Console.WriteLine("Ingrese el número: -999 para finalizar");
num = int.Parse(Console.ReadLine());
}
}
return n1;
</code></pre>

}
“`

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El código crea un nuevo nodo n1 utilizando el primer valor de entrada del usuario num. Luego, establece last como n1. Dentro del bucle while, se crea un nuevo nodo newNode utilizando el nuevo valor de entrada del usuario num. El método SetNext() establece el siguiente nodo de last como newNode y luego actualiza last para que sea el nuevo nodo newNode en sí mismo.

    De esta manera, last siempre apunta al nodo anterior en la lista enlazada y newNode es el nuevo nodo que se agrega a la lista enlazada. n1 sigue siendo el primer nodo en la lista enlazada y su valor nunca se actualiza.

    A medida que el bucle while continúa ejecutándose, se agregan nuevos nodos a la lista enlazada actualizando el nodo last para que apunte al nuevo nodo, hasta que el usuario termine el bucle al ingresar -999.

    Entonces, en resumen, n1 es el primer nodo en la lista enlazada, last es el último nodo en la lista enlazada, y se agregan nuevos nodos a la lista enlazada actualizando last para que apunte al nuevo nodo.

Comments are closed.