Mittwoch, 7. April 2010
Aufgabe Verkettete Listen - Partner finden für Tanzkurs
Teilnehmerinnen und Teilnehmer melden sich zu einem Tanzkurs an. Der Tanzlehrer stellt die Paare zusammen, indem er immer eine Frau aus der Liste der Teilnehmerinnen und einen Mann aus der Liste der Teilnehmer nimmt (und streicht).
Eine Liste wird immer vollständig leer werden, die zweite kann noch TeilnehmerInnen enthalten.
Erstellen Sie ein Programm, welches zwei Dateien, in denen die Namen sind, liest und die Namen in die entsprechende Liste (alphabetisch sortiert) einfügt.
Die Zusammenstellung der Paare erfolgt dann so, dass jeweils ein (zufälliges) Element aus der ersten Liste und ein (zufälliges) Element aus der zweiten Liste entfernt. Im einfacheren Fall wird das Paar einfach ausgegeben und die beiden Listenelemente freigegeben (alle Referenzen auf die Listenelemente auf
Für Paare wird es eine eigene Datenstruktur (Klasse) geben:
Aufrufbeispiel bei zufälliger Auswahl der Tanzpartner:
Dabei enthält die Datei
Nach dem Einlesen der Dateien sollten zwei Listen, etwa wie im Bild skizziert, enstehen:
Die Zuordnung der Paare erzeugt eine Liste wie folgt. Eine Dame bleibt bei in der Liste
Eine Liste wird immer vollständig leer werden, die zweite kann noch TeilnehmerInnen enthalten.
Aufgabenstellung mit verketteten Listen
Erstellen Sie ein Programm, welches zwei Dateien, in denen die Namen sind, liest und die Namen in die entsprechende Liste (alphabetisch sortiert) einfügt.
Die Zusammenstellung der Paare erfolgt dann so, dass jeweils ein (zufälliges) Element aus der ersten Liste und ein (zufälliges) Element aus der zweiten Liste entfernt. Im einfacheren Fall wird das Paar einfach ausgegeben und die beiden Listenelemente freigegeben (alle Referenzen auf die Listenelemente auf
null
setzen, sodass der Garbage Collector den Speicher freigeben kann). In der fortgeschrittenen Lösung wird das Paar in eine spezielle Liste übernommen, deren Elemente jeweils Referenzen auf die beiden Teilnehmer enthält. Zum Schluss wird diese Liste ausgegeben.Mögliche Datenstrukturen
class Teilnehmer { Teilnehmer next; String name; }An geeigneter Stelle sollte es etwas wie folgt geben:
Teilnehmer frauen = null; Teilnehmer maenner = null;
Für Paare wird es eine eigene Datenstruktur (Klasse) geben:
class Paar { Paar next; Teilnehmer frau; Teilnehmer mann; }An geeigneter Stelle sollte es etwas wie folgt geben:
Paar paare = null;
Gesamtprogramm und Tests
Aufrufbeispiel bei zufälliger Auswahl der Tanzpartner:
hp@l211 $ java TanzkursListe male female 6 Paare ======== Felix <-> Petra Franz <-> Sonja Harald <-> Elke Martin <-> Gabi Peter <-> Karin Reinhold <-> Brigitte Übriggebliebene =============== Andrea
Dabei enthält die Datei
male
die Namen der Männer und female
die Namen der Frauen:male
Harald Franz Martin Felix Peter Reinhold
female
Gabi Elke Sonja Brigitte Karin Petra Andrea
Nach dem Einlesen der Dateien sollten zwei Listen, etwa wie im Bild skizziert, enstehen:
Die Zuordnung der Paare erzeugt eine Liste wie folgt. Eine Dame bleibt bei in der Liste
frauen
:Abonnieren Posts [Atom]
Kommentar veröffentlichen