Durchqueren Sie eine einfach verkettete Liste in der Reihenfolge

Ich habe versucht zu denken, eine Weise zu durchqueren, eine einfach verkettete Liste.

Dies so weit ist, was ich getan habe:

#include <iostream>

typedef struct node {                                                               
      int data;               //will store information
      node *next;             //the reference to the next node
};  


int printList(node *traverse) {
    if (traverse->next == NULL) {
        return -1;
    }
    traverse=traverse->next;
    printList(traverse);
    cout << traverse->data << endl;
    return 0;
}

int main() {
    node *head = NULL;      
    for (int i = 0; i < 10; i++) {
        node *newEntry = new node;
        newEntry->data = i;
        newEntry->next = head;
        head = newEntry;
    }
    printList(head);
    return 0;
}

Kann ich nicht denken, eine Möglichkeit zum drucken der letzten Stelle(9) in printList() Funktion. Wie würde ich in der Lage sein, dies zu erreichen?
Meine zweite Frage ist, wie kann ich die traverse gleiche in einer while-Schleife statt einer rekursiven Funktion.

Wie einige von Ihnen versucht zu beantworten, bevor, ich bin nicht auf der Suche nach Durchlaufen dieser von 9 auf 0, Das sollte traverse von 0 bis 9, Sie können finden Sie in der Ausgabe von http://codepad.org/ynEdGc9S

  • Wenn dies Produktions-code dann benutzen Sie std::list. Wenn nicht, dann genießen.
  • Mehr wie std::forward_list.
  • SB Touche
InformationsquelleAutor Sarp Kaya | 2013-07-03
Schreibe einen Kommentar