Seite 1 von 1

Aufgabe 7) Klausur A WS 09/10

Verfasst: Do 17. Feb 2011, 22:45
von beafraid88
Ein Eisenbahnzug sei durch eine einfach verkettete Liste dargestellt. F¨ur die folgenden
Teilaufgaben nutzen Sie bitte die folgenden Deklarationen. Die Funktionen isEmpty
und appendFirst m¨ussen nicht implementiert werden!

#define N 10
typedef struct wagen {
int wagenNummer ;
struct wagen* next ;
} Wagen , *wagenptr ;

typedef struct wa g enl i s t e {
wagenptr f i r s t ;
} Wagenl i s te , * wa g e n l i s t e p t r ;

typedef struct zug {
char lokName [N] ;
Wagenl i s te wagenfolge ;
} Zug , *zugpt r ;

/*Pruef t , ob d i e Li s t e l e e r i s t . L i e f e r t 1 zurueck ,
wenn s i e l e e r i s t , ansons ten 0 */
int isEmpty ( wa g e n l i s t e p t r l ) ;

/* f ¨u g t vorne in d i e Wagenl i s te *l
den Wagen *w e in */
void appendFi r s t ( wa g e n l i s t e p t r l , wagenptr w) ;

/* e n t f e r n t den e r s t en Wagen aus der Wagenliste * l
und g i b t d i e Referenz auf di e s en Wagen zur¨uck */
wagenptr popFi r s t ( wa g e n l i s t e p t r l ) ;

Frage:
Implementieren Sie die Funktion popFirst. Sie d¨urfen davon ausgehen, dass die
Funktion nicht f¨ur leere Wagenlisten aufgerufen wird!
wagenptr popFi r s t ( wa g e n l i s t e p t r l ) {
}

Weiss jmd, wie das geht?

Re: Aufgabe 7) Klausur A WS 09/10

Verfasst: Do 17. Feb 2011, 23:25
von old
Hi,


zunächst überprüfen, ob etwas in der Liste steht.
Falls ja ->
Nehme erstes Element der Liste und gebe es zurueck.
Falls der Zeiger des Elements auf das nächste Element null ist, setze den Listen Zeiger, der auf das erste Element zeigt, auf null.

Ansonsten setze den First Zeiger der Liste auf das "nächst" Element, des "gepoppten" Elements.