P. Pfahler, E. Stümpel
Programmieren in Java, Winter 1997/98
3. Übungsblatt, 10.11.1997
Abgabe: 17.11.1997, 18h an elfriede@uni-paderborn.de, Subject "Blatt3"
Dieses Blatt beendet die Ära der Übungsblätter im Schreibmaschinen-Look.
Quellprogramme und Daten, die wir für das Übungsblatt zur Verfügung stellen,
sind ab jetzt nicht mehr in das Blatt hereinkopiert, sondern über Links zu
erreichen. Solche Quellen brauchen also nicht mehr ausgeschnitten zu werden,
sondern können einfach heruntergeladen werden.
Aufgabe 4 (Innere Klassen und Iteratoren)
Die Klasse LinkedList von der
Vorlesungsfolie 72 soll wie folgt erweitert werden:
- Statt der Methode insert(Linkable) benötigen wir zwei
Einfügemethoden insert_front(Linkable) und
insert_back(Linkable) um vorne bzw. hinten in der Verkettung
einfügen zu können.
- Zum Durchlaufen von Listen benötigen wir einen Iterator. Er ist als
öffentliche Elementklasse von LinkedList deklariert
(nicht privat wie auf Folie 79), implementiert
java.util.Enumeration und heißt lili_iterator.
- Zum Test der neuen Einfüge-Methode und des Iterators gibt es gratis
ein Hauptprogramm . Es liest
Strings aus
einer Wörterbuchdatei german.3-6,
baut daraus eine verkettete Liste auf und gibt diese mit dem Iterator aus.
Bitte geben Sie nur die erweiterte Version der
Klasse LinkedList ab.
Hinweise:
- Die Wörterbuchdatei enthält knapp 8000 großbuchstabige deutsche Wörter
mit 3-6 Buchstaben (ohne Umlaute).
- Testen Sie ihre LinkedList-Erweiterung am besten zuerst mit
einer etwas kleineren Datei.
- Nicht jedes kleine Programm, das nach 3 Minuten noch keine Ausgabe
erzeugt hat, befindet sich in einer Endlosschleife!
Aufgabe 5 (Scrabble)
Schreiben Sie ein Java-Programm, das von der
Kommandozeile einen Buchstabenvorrat in Form eines Strings einliest und
die Wörter eines Wörterbuchs ausgibt, die sich mit diesem
Buchstabenvorrat bilden lassen.
Hierbei müssen mehrfach benötigte Buchstaben auch mehrfach im
Buchstabenvorrat vorhanden sein.
Bsp.: Mit dem Buchstabenvorrat "JVA" läßt sich das Wort
"JAVA" nicht bilden.
Implementieren Sie die Prüfung, ob sich ein gegebenes Wort mit
einem gegebenen Buchstabenvorrat bilden läßt durch eine Klasse
folgenden Aussehens:
public class Scrabble
{ public static boolean geht(String vorrat, String wort)
// gibt true zurück, wenn sich "wort" mit den Buchstaben aus
// "vorrat" bilden läßt. Sonst false.
....
}
Bitte geben Sie nur diese Klasse Scrabble ab.
Hinweise:
- Die Wörterbuchdatei german.3-6
enthält knapp 8000 großbuchstabige deutsche Wörter
mit 3-6 Buchstaben (ohne Umlaute).
- Die Einlese-Schleife für die Wörterbucheinträge können Sie aus dem
Hauptprogramm von Aufgabe 4 übernehmen.