qué papel cada nodo desempeña en lista enlazada?

Hussein albirouti:

¿Por qué cada vez que creamos un nuevo nodo p.next, así que necesitamos para asignar nula a this.next? No siempre es nulo de alguna manera? y qué papel desempeña en LinkedList? si tratamos de imprimir this.nextserá nula antes de que asignamos a nula .

System.out.println(this.next);

El resultado es nulo

Además, si p.nextel punto a la nueva nodepor qué tenemos que establecer p = p.nextpara que señale el mismo nodo? Si el propósito de inserción de la cola de p en el pasado, puede que no acaba de establecer tail = p.nextque es la última después de finalizada bucle.

public class EnkeltLenketListe<T>{
private T value;
private Node<T> next;

private Node(T value, Node<T> next)
{
System.out.println(this.next);
    this.next = next;
    this.value = value;
}
}

private Node<T> head, tail;

public EnkeltLenketListe(T[] a)
{
this();

int i = 0; for (; i < a.length && a[i] == null; i++);

if (i < a.length)
{
    head = new Node<>(a[i], null);
    Node<T> p = head;

    for (i++; i < a.length; i++)
    {
        if (a[i] != null)
        {
            p.next = new Node<>(a[i], null);
            p = p.next;
        }
    }
    tail = p;
}
}
El método científico :

¿Por qué cada vez que crear nueva p.next nodo, así que necesitamos nula asignar a this.next?

mientras que la adición y eliminación de un nodos, hay que asegurarse de que los nodos no apuntan a los nodos no deseados. puede ser que tengan que apunta a algunos nodos.

Por eso necesitamos conjunto P = p.next a punto al mismo nodo

para localizar y mantener su posición en la lista mientras está Recorrido de la lista, se parte de la cabeza, y seguir a los nodos restantes. Si p=p.next, ¿cómo van a recorrer la lista?

¿No podemos sistema de la cola = p.next que es la última después de finalizada bucle.

No, no podemos debido a que en este caso p.nextes equivalente a p.p.nextporque pse fijó en p.nextel interior del bucle. probarlo añadiendo lo siguiente antes tail=p, usted debe conseguir nula

System.out.println(p.next);


editado:

su lista está separado lista de lo que significa cada nodo, excepto la cola debe tener un puntero al siguiente nodo relacionado, que se inició con

head = new Node<>(a[i], null);
Node<T> p = head;

en este caso, py headestán apuntando Node 0Vea a continuación. si el siguiente nodo de la matriz no es nulo, por no ver lo que sucede en el bucle

    p.next = new Node<>(a[i], null);
    p = p.next;

En este caso p.nextse señala a Node 1(ver imagen inferior), en donde como pel que señalaban Node 0ahora se establece en el punto a Node 1. por lo tanto están apuntando a 'Nodo 1`. el último:

tail = p;

Usted ha dicho que por qué no acabamos tail=p.next? No, no podemos debido a que en este caso p.nextes equivalente a p.p.nextporque pse fijó en p.nextel interior del bucle.

lista enlazada

leer acerca de lista enlazada aquí

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=201706&siteId=1
Recomendado
Clasificación