000
06.06.2005, 18:15 Uhr
Sunny84
|
Hallo,
und zwar möchte ich ein Programm schreiben, bei dem man als Nutzer immer einen Namen (später soll viel mehr dazu kommen, ändert aber nix am Problem) in eine verkettete Liste hinzufügen kann (Funktion Add). Danach soll die gesamte Liste ausgelesen werden (Funktion Read).
Nun ist allerdings mein Problem, dass bei der Ausgabe immer nur die letzten beiden eingegebenen Namen angezeigt werden. Hab ich also "A","B","C","D" eingefügt gibt es mir nur "C" und "D" aus.
Hier ist nun das Programm, das mir die Probleme bereitet. Hab es für die Fehlerveranschaulichung möglichst einfach gehalten.
C++: |
#include <iostream> #include <string> using namespace std; struct Student { char name[40]; Student *pNext; };
void Add(Student *&Lst) { char name[40]; cout<< endl <<"Name: "; cin >> name; Student *New = new Student; New->name = name; New->pNext = NULL; if (Lst == NULL) Lst = New; else {while (Lst->pNext != NULL) Lst = Lst->pNext; Lst->pNext = New;}
}
void Read(Student * const Lst){
if(Lst!=NULL) {Student *temp = Lst; while(temp!=NULL) {cout << temp->name << endl; temp=temp->pNext;} } }
int main() { int ende; Student *Liste = NULL; ende=1; while(ende!=0) { Add(Liste); Read(Liste); cout<<"Weiter (0 Nein, 1 Ja) "; cin >> ende; } return 0; }
|
Ich hoffe ihr könnt mir helfen. Vielen Dank schonmal!
mfg Frank |