21.11.2013 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<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 />

Um e<strong>in</strong> Element am Listenanfang e<strong>in</strong>zufügen, ist wie folgt vorzugehen:<br />

Struktogramm Graphisch Leere Liste C-Code<br />

Ja<br />

Liste Leer?<br />

Tail auf Neues Element<br />

zeigen lassen<br />

H<br />

T<br />

H<br />

H<br />

T<br />

T<br />

if (Head == NULL) {<br />

}<br />

Tail = NewElement;<br />

Neues Element auf bisher<br />

vorderstes Element zeigen<br />

lassen<br />

Head auf neues Element<br />

zeigen lassen<br />

H<br />

H<br />

T<br />

T<br />

H<br />

H<br />

T<br />

T<br />

NewElement->Next =<br />

Head;<br />

Head = NewElement;<br />

Um e<strong>in</strong> Element vom Listenanfang zu entfernen, ist wie folgt vorzugehen:<br />

Struktogramm Graphisch Leere Liste C-Code<br />

Ne<strong>in</strong><br />

Liste Leer?<br />

H<br />

T<br />

H<br />

T<br />

if (Head != NULL) {<br />

Head auf Nachfolger<br />

von bisher vorderstem<br />

Element zeigen lassen<br />

Ja<br />

Liste Leer?<br />

Tail auf NULL<br />

setzen<br />

H<br />

H<br />

T<br />

T<br />

H<br />

H<br />

T<br />

T<br />

}<br />

Head = Head->Next;<br />

If (Head == NULL) {<br />

Tail = NULL;<br />

}<br />

Um Elemente am Listenende e<strong>in</strong>zufügen oder zu entfernen müssen entsprechend modifizierte Operationen<br />

durchgeführt werden.<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 />

Aufgabe 27.1:<br />

Entwerfen Sie zwei C-Funktionen (Inklusive Design/Struktogramm), <strong>die</strong> Elemente am Listenende<br />

e<strong>in</strong>fügen resp. entfernen.<br />

Gedruckt am 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 103/147

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!