Prof. Dr. R. Guettler 17. Uebung zu Programmierung 2 (Listen, Stacks) ================================================ SS 2015 Abgabe KW 22 ============ 1. Aufgabe ---------Eine Java-Klasse soll Namen (strings) in sortierter Reihenfolge mit Hilfe einer doppelt verketteten Liste (vor- bzw. rueckwaerts, siehe Klasse DList aus Vorlesung Programmierung 1) mit den Methoden add und remove verwalten. Die Namen sollen in die Liste sortiert eingefuegt werden, dabei versteht sich von selbst, dass in der Liste keine Namen doppelt vorkommen duerfen ! Die Namen stehen in einer Eingabedatei (Name der Datei ist einzulesen!) jeweils mit einem vorangestellten "+" fuer add oder einem "-" fuer remove. Es duerfen keine Klassenbibliotheken fuer die Realisierung der sortierten Liste verwendet werden! Als Grundlage Ihrer Liste sollen Sie die o.g. Klasse DList verwenden, siehe Hilfsmittel zu dieser Aufgabe. Beachten Sie die Auswirkungen der "sortiert"-Bedingung auf die Sinnhaftigkeit von Methoden der Implementierung zur Klasse DList: - addFirst, addBefore usw. machen keinen Sinn! - Welche Methoden bleiben uebrig ? 2. Aufgabe ---------Eine Java-Klasse soll Namen (strings) mittels eines Stacks mit den Methoden push und pop verwalten. Die auszufuehrenden Operationen stehen in einer Eingabedatei (der Dateiname ist einzulesen!) jeweils mit einem Namen und vorangestelltem "+" fuer push oder "-" (natuerlich ohne Namen) fuer pop. Die Realisierung des Stacks soll mittels Array’s erfolgen (eine Realisierung mit Liste befindet sich im Skript von Programmierung 1). Allgemeine Hinweise fuer beide Klassen -------------------------------------- Die Eingabedatei ist auf "existiert", "einfache Datei" und "lesbar" mittels selbst geschriebener Exceptions abzupruefen. Im Fehlerfall ist adaequat zu reagieren. - Als Eingabedatei-Reader ist der LineNumberReader zu nutzen. - Nach Lesen einer Eingabezeile ist deren Nummer und Inhalt auf Stdout auszugeben, nach ihrer Verarbeitung der momentane Zustand der entsprechenden Datenstruktur ( SortedList bzw. Stack ). - Fehlerhafte Eingabedateizeilen oder zu fehlerhaften bzw. verbotenen Aktionen fuehrende Eingabedateizeilen sind mittels selbst geschriebener Exceptions dem Testprogramm zu melden und auf der Stdout mit Zeilennummer zu dokumentieren. - Das Testprogramm soll nach Abfangen einer Exception selbstverstaendlich die weiteren Eingabezeilen verarbeiten (typischer Batch-Betrieb). - Benutzen Sie bei den Methodenschnittstellen als Uebergabeparameter ObjectReferenzen, genauso wie bei den Datenstrukturen im Skript ! - Bedenken Sie, dass im Falle der sortierten Liste nur vergleichbare Objekte in die Liste aufgenommen werden duerfen.