verkette liste
-
Hallo zusammen, ich habe mal einen Code gefunden, mit dem man verkette Listen erstellen kann.
Jetzt gibt diese Liste die Elemente aber in "absteigender" Reihenfolge wieder.
Wie bekomme ich es denn hin, dass diese "aufsteigend" gespeichert bzw. ausgegeben werden?Also damit meine ich, dass die neuen Elemente der verketten Liste immer am Ende der Liste gespeichert werden.
gruß anno
#include <iostream> #include <string> using namespace std; struct Feld { string text; Feld *pnext; }; int main(int argc, char* argv[]) { Feld *pstart,*pneu; //-------------4 Elemente anlegen-------------------- pstart=new Feld; pstart->pnext=0; (*pstart).text="ich bin die 1"; pneu=new Feld; pneu->text="Ich bin die 2"; pneu->pnext=pstart; pstart=pneu; pneu=new Feld; pneu->text="Ich bin die 3"; pneu->pnext=pstart; pstart=pneu; pneu=new Feld; pneu->text="Ich bin die 4"; pneu->pnext=pstart; pstart=pneu; //------------Ausgabe der Liste----------------------- Feld *pakt; pakt=pstart; do { cout << pakt->text << endl; pakt=pakt->pnext; } while(pakt!=0); getchar(); return 0; }
-
indem du de daten anderrum hereinschreibst
-
nein das kann ich leider nicht, da ich die daten aus einer datei auslesen will
-
Verlegen wir die Ausgabe erstmal in eine separate Funktion:
void PrintList( const Feld* cur ) { cout << cur->text << endl; if ( cur->pnext ) PrintList( cur->pnext ); } // Mit Aufruf in main: PrintList( pstart );Das Ganze von hinten auszugeben, ist dann nur noch ein kleiner "Trick":
void PrintList( const Feld* cur ) { if ( cur->pnext ) PrintList( cur->pnext ); cout << cur->text << endl; }