curr.Next = data; // how does Head receive the data that is passed to curr ?
nicht. In der ersten Zeile wird curr
auf das Objekt Head
gerichtet.
Service curr = Head; // curr --> Head
jetzt, wenn Head
ist noch nicht initialisiert, das heißt: if (Head == null)
es werden die Daten nehmen und Punkt Head
an die gleiche Adresse im Speicher, wo data
in dieser Zeile vorhanden sein:
Head = data;
Wenn auf der anderen Hand die Head
bereits existiert als die neuen Daten müssen bis zum Ende des Schwanzes gehen. Der Schwanz ist als eine Reihe von Elementen dargestellt, die durch die Next
Eigenschaft zugänglich sind:
Head | Head.Next --> item2 | item2.Next --> item3 | item3.Next --> null
Der letzte Punkt im Heck wird keinen nächsten Punkt hat. Also ist der Wert null
. Die while-Schleife läuft durch die gesamte tail solange es ein Next
Element vorhanden ist und bei jedem Schritt ordnet das Next
Element zum curr
ent-Elemente:
while (curr.Next != null)
{
curr = curr.Next;
}
Whe es das letzte Element, das kein Next
Element hat erreicht hat, nehmen die Next
Eigenschaft und es auf die Speicheradresse zeigen, wo data
befindet:
curr.Next = data;
Nein, Sie haben einen weiteren Eintrag in der Liste am Ende. Und wieder hat dieses neue Element die Next-Eigenschaft, die auf null
verweist.
Ich hoffe, es ist verständlich. Wenn nicht, schreib mir einen Kommentar.
Wie sollten wir die Implementierung der 'Service'-Klasse erraten? –
Was ist Ihre Frage? Was auch immer Sie hier gefragt haben, hängt nicht vollständig mit dem Code zusammen. Zeigen Sie Ihren vollständigen Code –