2016-10-13 2 views
-1

Beim Durchlaufen einer einzelnen Liste innerhalb der Schleifenbedingung ist der Unterschied zwischen temp! = NULL und temp-next! = NULL? Für ExDurchlaufen einer einzelnen Liste

while(temp != NULL) 
    { 
     ...... 
     ...... 
    } 

und

while(temp->next != NULL) 
    { 
     ...... 
     ...... 
    } 

verstehe ich nicht den Unterschied zwischen den beiden.

Antwort

0

Aus dem Kontext geht diese Antwort davon aus, dass temp ein Knoten in der verknüpften Liste ist.

temp->next != NULL gibt true zurück, wenn ein Knoten nach temp vorhanden ist (d. H. Wenn temp nicht der letzte Knoten in der Liste ist). Als Beispiel betrachten wir diese Liste:

a -> b -> c -> NULL 

wenn wir temp = a->next tun dann Temp b ist, und temp->next != NULL true ausgewertet, da c (nicht NULL) kommt nach b.

temp != NULL gibt true zurück, wenn temp selbst ein Knoten in der Liste ist. Dies ist möglicherweise nicht der Fall, wenn Sie aus irgendeinem Grund die Liste zu weit zurückgelegt haben. Verwenden Sie die gleiche Liste wie oben: Wenn wir temp = c->next tun, dann wird temp != NULL zu false ausgewertet.

dem Verständnis, dass die Differenz zwischen den Listen ist wie folgt:

  • while(temp != NULL)... ausführt, bis Temp NULL ist
  • while(temp->next != NULL) ausführt, bis der Knoten nach Temp NULL ist
Verwandte Themen