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 />
E<strong>in</strong> Element lässt sich folgendermassen vom Listenanfang entfernen:<br />
Ne<strong>in</strong><br />
Liste Leer?<br />
if (Head != NULL) {<br />
Ne<strong>in</strong><br />
Letztes Element?<br />
Head auf zweitvorderstes<br />
Element zeigen Head<br />
Tail<br />
lassen<br />
NULL<br />
zen<br />
Rückzeiger von zweitvorderstem<br />
Element<br />
auf Null setzen<br />
<strong>und</strong><br />
auf<br />
set-<br />
}<br />
if (Head->Next == NULL){<br />
Tail = NULL;<br />
Head = NULL;<br />
} else {<br />
Head = Head->Next;<br />
}<br />
Head->Previous = NULL;<br />
Um e<strong>in</strong> Element h<strong>in</strong>ter e<strong>in</strong>em gegebenen Element anzuhängen, ist wie folgt vorzugehen:<br />
Ne<strong>in</strong><br />
Letztes Element?<br />
if (Aktuell->Next != NULL)<br />
{<br />
Neues Element auf Neues Element<br />
Element h<strong>in</strong>ter aktuellem<br />
Element zeigen gen lassen<br />
auf NULL zei-<br />
lassen<br />
Rückzeiger von<br />
Rückzeiger von neuem<br />
neuem Element<br />
Element auf aktuelles<br />
auf aktuelles<br />
Element zeigen lassen<br />
Element zeigen<br />
lassen<br />
Rückzeiger von Element<br />
h<strong>in</strong>ter aktuellem<br />
Element auf neues<br />
Element zeigen lassen<br />
Tail auf neues<br />
Element zeigen<br />
lassen<br />
Aktuelles<br />
Element<br />
auf neues<br />
Aktuelles Element auf Element zeigen<br />
neues Element zeigen lassen<br />
lassen<br />
NewElement->Next =<br />
Aktuell->Next;<br />
NewElement->Previous =<br />
Aktuell;<br />
Aktuell->Next->Previous=<br />
NewElement;<br />
Aktuell->Next =<br />
NewElement;<br />
} else {<br />
NewElement->Next = NULL;<br />
NewElement->Previous =<br />
Aktuell;<br />
}<br />
Tail = NewElement;<br />
Aktuell->Next =<br />
NewElement;<br />
Achtung: Der Speicherplatz von Listenelementen, <strong>die</strong> aus e<strong>in</strong>er Liste entfernt werden <strong>und</strong> nicht<br />
mehr benötigt werden, muss mit free() wieder freigegeben werden, falls zum Erzeugen der Listenelemente<br />
malloc() verwendet wurde. Das Freigeben oder Erzeugen von Listenelementen ist<br />
jedoch nicht unbed<strong>in</strong>gt Aufgabe der E<strong>in</strong>füge <strong>und</strong> Entfernfunktionen.<br />
Gedruckt am 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 106/147