verkettete liste macht mich fertig!!!
-
Hallo, könnt ihr mir bitte weiterhelfen..
ich muss eine Struktur namens struct student, mit der man Diplomstudenten in einer einfach verketteten linearen Liste verwalten kann definieren.
Dabei sollen für jeden Studenten Vor- und Nachname,
Matrikelnummer, Adresse und die Anzahl der von ihm bereits belegten Pflichtkurse gespeichert
werden.also eine einfach verkettete Liste, bestehend aus drei Elementen
deswegen hab ich angefangen mit
struct student { char name[20]; char nachname[20]; long matrikel; char adresse[20]; long anzahl; }; int main (void){ struct student kollege1 = { .name= "Lili", .nachname= "San", .matrikel= 22222, .adresse= "HH Altona, 85", .anzahl= 36 }; //usw...
also keine Liste von Studenten erstellt, sondern für jeden Studenten eine lokale Variable angelegt.
Ich weiß gar nicht wie man das anders macht
Außerdem soll man die Liste in einer while-Schleife durchgehen dann das mittlere Listenelement löschen und die Liste erneut ausgeben lassen.
HILFT MIR BITTE
-
Hast du denn gar nichts gelernt?
-
Also mir hat es bei verketten Listen immer ungemein geholfen, das Ganze einfach auf ein Blatt zu zeichen
Du hast also deine Struktur
struct student { char name[20]; char nachname[20]; long matrikel; char adresse[20]; long anzahl; };
nun brauchst du eine Variable die auf die Struktur zeigt...
<- Pointerin der Struktur selbst brauchst du ebenfalls einen Pointer, der auf sein nächstes Element zeigt...
so entsteht eine Liste[cpp]struct student { char name[20]; char nachname[20]; long matrikel; char adresse[20]; long anzahl; struct student *next; };
int main(){ struct student *top; struct student *end; return 0; }
so, top.next muss also auf das Ende zeigen
während end.next auf null zeigt...fügen wir nun neue Daten ein muss dieses Struct zwischen top und end,
also wäre unser neues element *data = top.next (was das aktuelle Ende der Liste makiert) und das neue top.next = data (das neue Element dazwischen)^^
good luck beim erstellen der Liste
-
ohem schrieb:
so, top.next muss also auf das Ende zeigen
während end.next auf null zeigt...Um genau zu sein sind top und end am Anfang dasselbe, top.next zeigt also auf null.