Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />
void InsertBeh<strong>in</strong>d(ListElement *Where, ListElement *What) {<br />
if (Where == NULL) {<br />
PushBack(What);<br />
} else {<br />
What->Previous = Where;<br />
What->Next = Where->Next;<br />
if (Where->Next == NULL) {<br />
Tail = What;<br />
} else {<br />
Where->Next->Previous = What;<br />
}<br />
Where->Next = What;<br />
}<br />
}<br />
void InsertBefore(ListElement *Where, ListElement *What) {<br />
if (Where == NULL) {<br />
PushFront(What);<br />
} else {<br />
What->Previous = Where->Previous;<br />
What->Next = Where;<br />
if (Where->Previous == NULL) {<br />
Head = What;<br />
} else {<br />
Where->Previous->Next = What;<br />
}<br />
Where->Previous = What;<br />
}<br />
};<br />
ListElement *Erase(ListElement *Which) {<br />
if ((Head == NULL)||(Which == NULL)) {<br />
return (NULL);<br />
}<br />
if (Which->Next == NULL) {<br />
Tail = Which->Previous;<br />
} else {<br />
Which->Next->Previous = Which->Previous;<br />
}<br />
if (Which->Previous == NULL) {<br />
Head = Which->Next;<br />
} else {<br />
Which->Previous->Next = Which->Next;<br />
}<br />
return Which->Next;<br />
}<br />
<strong>in</strong>t ma<strong>in</strong>(<strong>in</strong>t argc, char* argv[]) {<br />
}<br />
ListElement *Tmp = (ListElement *) malloc(sizeof(ListElement));<br />
if (Tmp != NULL) {<br />
PushFront (Tmp);<br />
}<br />
Tmp = PopBack();<br />
free(Tmp);<br />
Um mit mehreren Listen gleichzeitig arbeiten zu können, kann das Modul dah<strong>in</strong>gehend geändert<br />
werden, das Tail <strong>und</strong> Head <strong>in</strong> e<strong>in</strong>e Struktur gepackt werden, <strong>und</strong> allen Funktionen als zusätzliches<br />
Argument e<strong>in</strong> Zeiger auf e<strong>in</strong>e solche Struktur übergeben wird.<br />
Jede Liste hat so ihre eigene Listenverwaltung (Listenkopf <strong>und</strong> Ende).<br />
Gedruckt am 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 109/147