2017-03-13 2 views
-5

Kann nicht verstehen, wie Head die Daten erhält, die an curr übergeben werden. Wäre toll, wenn jemand eine klare Erklärung gabC# Verknüpfte Liste kann add nicht verstehen Methode

class LinkedListService 
{ 
    private Service Head; 
    public LinkedListService() 
    { 
     Head = null; 
    } 
    public void add(Service data) 
    { 
     Service curr = Head; 
     if (Head == null) 
     { 
      Head = data; 
     } 
     else 
     { 
      while (curr.Next != null) 
      { 
       curr = curr.Next; 
      } 
      curr.Next = data; // how does Head receive the data that is passed to curr ? 
     } 
    } 
} 
+0

Wie sollten wir die Implementierung der 'Service'-Klasse erraten? –

+0

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 –

Antwort

0
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.