Mit Schleife zum Durchlaufen durch verknüpfte Liste

War ich beim Lesen über ein paar grundlegende Operationen auf verketteten Liste, und ich sah zwei Arten von Schleifen verwendet wird überwiegend


struct node {
   int data;
   struct node *next;
}*start=NULL,*tmp;

Die erste Schleife der form

for(tmp=start;tmp->next!=NULL;tmp=tmp->next);

Mithilfe der obigen Schleife, jetzt die tmp Zeiger zeigt auf den letzten Knoten in der Liste

Die zweite Schleife der form

tmp=start;
while(tmp!=NULL)
{
     //do something
}

Ich denke, dass beide die gleiche Arbeit tun, aber ich bin mir nicht sicher. Gibt es da einen Unterschied?

  • Sie fehlt tmp=tmp->next; in der while-Schleife
  • // do something abdeckt.
  • Q: Ist die "for-Schleife" idiom entspricht dem entsprechenden "while-Schleife"? A: Ja. Q: Ist das Beispiel sinnlos, weil dieser "for () - Schleife" passiert zu haben, ein Fehler? A: ja auch 🙂
InformationsquelleAutor OneMoreError | 2012-07-13
Schreibe einen Kommentar