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 😞 😞





  • 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...
    <- Pointer

    in 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.


Anmelden zum Antworten