Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Problem mit Verkette Liste mit 2 structs

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.06.2006, 22:38 Uhr
Frido



Möchte eine verkette Liste erweitern und zwar soll das erste Element der Liste Namen enthalten von einer Person und alle Nachfolgenden Elemente soll andere Werte stehen. Hab zwar schon was gemacht klappt aber nicht.

Das sind die struct habe ich die so richtig gewählt für von vorhaben.

Code:
ypedef struct Person {                //Struktur wird definiert
    
    char name[21];
    char vorname[21];
    char Matrikelnr[21];
    struct Person   *next;
    struct Pruefung *Pruefungen;
} Person_t;

typedef struct Pruefung{
    char  Fach[21];
    char  Prof[21];
    char  Datum1[2];
    char  Datum2[2];
    char  Datum3[4];
    char  Punkte[21];
    int   Position_Pruefung;
    struct Pruefung *next;
}Pruefung_t;



Und hier ist meine Eingabe routine , aber nur für eine normale Kette.

Code:
void    Student_einfuegen        (Person_t Person, Pruefung_t Pruefung){

    Person_t *pLL , *pLL_vorher;
    


    if (start == NULL){

        start = (Person_t * ) malloc ( sizeof(Person_t) );
        

        strcpy(start->name,            Person.name);                        
        strcpy(start->vorname,        Person.vorname);                
        strcpy(start->Matrikelnr,    Person.Matrikelnr);

        start->next = NULL;
    }
    else{
        pLL = start;

        while ( pLL != NULL)
            pLL = pLL->next;

        if (pLL == start){

            start = (Person_t*) malloc ( sizeof(Person_t) );
            
            strcpy(start->name,            Person.name);                    
            strcpy(start->vorname,        Person.vorname);                
            strcpy(start->Matrikelnr,    Person.Matrikelnr);

            start->next = pLL;                                            
        }
        else{                                                            
            pLL_vorher = start;

            while ( pLL_vorher->next != pLL )
                pLL_vorher = pLL_vorher->next;

            pLL = (Person_t*) malloc ( sizeof(Person_t) );

            strcpy(pLL->name,            Person.name);                    
            strcpy(pLL->vorname,        Person.vorname);                
            strcpy(pLL->Matrikelnr,        Person.Matrikelnr);

            pLL->next = pLL_vorher->next;                                
            pLL_vorher->next = pLL;                                    
        }
    }
}



Hab schon einiges Probiert hat aber immer dazu gefürht das das Programm sofort beendet wurde. Kann mir da jemand helfen??

mfg
--
http://spielwelt14.monstersgame.net/?ac=vid&vid=28103555
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.06.2006, 16:01 Uhr
TypusM



Hallo Frido, das hört sich ja alles sehr nach FH-SM an und zwar um genau die Praktikumaufgabe von Herrn Mach/Nado

Schau ma unter www.typusmensch.de/typustudy/DsAlgPrak/evl/Overview.html nach. Vielleicht hilfts das weiter. Hab das aber nur mit einer struct gemacht

Edit: Ansonsten wäre eine detailiertere Fragestellung an un für sich imho angepasst.

Dieser Post wurde am 25.06.2006 um 16:01 Uhr von TypusM editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: