Aufgabe 7) Klausur A WS 09/10

Moderator: Moderatoren

Antworten
Benutzeravatar
beafraid88
Beiträge: 99
Registriert: Sa 25. Okt 2008, 17:34
Wohnort: Aachen/Düsseldorf/Mönchengladbach

Aufgabe 7) Klausur A WS 09/10

Beitrag von beafraid88 » Do 17. Feb 2011, 22:45

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?

old
Beiträge: 186
Registriert: Do 17. Dez 2009, 11:50

Re: Aufgabe 7) Klausur A WS 09/10

Beitrag von old » Do 17. Feb 2011, 23:25

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.

Antworten

Zurück zu „Info I“