C-Uebung

Listen

Point Cloud Library | | Bäume

Aufgabe “Verkettete Listen”:

Implementieren Sie eine einfach verkettete Liste am Beispiel einer Geburtstagsdatenbank.

a) Benutzen Sie für einen Knoten der Liste (d.h. eine Person) eine Struktur, welche die persönlichen Daten (Name und Geburtstag) enthält. Zusätzlich enthält jeder Knoten einen Zeiger next auf den nächsten Knoten der Liste.

b) Schreiben Sie eine Funktion, welche eine bestimmte Person am Anfang der Liste einfĂĽgt.

c) Testen Sie Ihre Datenstruktur, indem Sie die 10 Personen aus der letzten Aufgabe einfĂĽgen. Geben Sie das Datum der dritten Person der Liste aus! Was sollte daher als Datum erscheinen?

d) Schreiben Sie eine Funktion, welche die Geburtstage einer Anzahl von Personen aus einer Datei einliest und sie in die verkette Liste einfĂĽgt. In der Datei sind pro Zeile die Daten jeweils einer Person abgelegt. Das Speicherformat einer Person in jeder Zeile ist “A.;Person mm/dd/yyyy”.

Als Geburtstagsdatenbank können Sie diese Liste von berühmten Persönlichkeiten verwenden.

Hinweis: Lesen Sie eine Zeile via fscanf(file, "%s %d/%d/%d", ...). Ersetzen Sie danach alle vorkommenden ‘;’-Zeichen im Namensstring. Die letzte Zeile ist erreicht, wenn fscanf nicht den Funktionswert 4 zurĂĽckgibt.

e) Schreiben Sie eine Suchfunktion, welche als Argument den Namen einer gesuchten Person erhält (d.h. eine Zeichenkette). Die Funktion soll die gefundene Person zurückgeben (d.h. einen Knotenzeiger) oder NULL wenn die Suche erfolglos war.

f) Testen Sie die Funktionen, indem Sie in der Datenbank den Geburtstag von “Albert Einstein” suchen und ausgeben.

Point Cloud Library | | Bäume

Options: