muss heute noch hausaufgabe abgeben bin aber ne NULL in java..ich weiß, dass ihr keine Hausaufgaben macht aber vllt ist jemand so nett..
Der abstrakte Datentyp „Keller mit Elementen vom Typ T“ wird
durch die generische Schnittstelle
beschrieben.
a) Geben Sie eine Klasse LinkedListStack an, die diese Schnittstelle durch eine verkettete Liste implementiert. Lösen Sie jeweils eine eigene Ausnahme aus, falls eine
Operation nicht definiert ist. Realisieren Sie Ihre Implementierung ohne den Import
fremder Klassen.
b) Testen Sie Ihre Implementierung, indem Sie eine Klasse LinkedListStackTest anlegen, mit der alle Methoden des Interfaces für die Datentypen Integer und Character
mit JUnit getestet werden. Ihr Test soll dabei auch den Fehlerfall top/pop für einen
leeren Keller enthalten.
c) Testen Sie anschließend Ihr Programm mit der folgenden Anwendung:Editoren besitzen häufig ein sog. Löschsymbol. Wenn beispielsweise das
Zeichen "#" das Löschsymbol ist, dann wird die Zeichenkette "abc#d##e"
zur Zeichenkette "ae", denn das erste Löschsymbol löscht "c", das zweite
"d" und das dritte "b".
Testen Sie Ihr Programm, indem Sie eine Zeichenkette aus einer Datei einlesen und
das Ergebnis ausgeben. Falls die Datei die Zeichenkette "abc#d##e" enthält, soll also
"ae" ausgegeben werden. Falls die Datei die Zeichenkette "abc #d #e" enthält, soll
dementsprechend "abcde" ausgegeben werden. Verwenden Sie dafür den folgenden
Algorithmus:
– Jedes Zeichen der Datei wird eingelesen.
– Zeichen, die nicht das Löschsymbol sind, werden in einem Keller des Datentyps
Character gespeichert.
– Falls das Zeichen das Löschsymbol ist, wird das oberste Kellerzeichen gelöscht.
– Falls alle Zeichen eingelesen wurden, befindet sich die gesuchte Zeichenkette in
umgekehrter Reihenfolge auf dem Keller. Geben Sie den Kellerinhalt in umgekehrter Reihenfolge aus. Verwenden Sie dazu einen zweiten Keller.
Wie Zeichen aus einer Datei eingelesen werden können, zeigt das folgende Beispielprogramm:
Der abstrakte Datentyp „Keller mit Elementen vom Typ T“ wird
durch die generische Schnittstelle
Java:
interface Stack<T> {
boolean isEmpty();
T top() throws MyStackException;
void push(T x);
void pop() throws MyStackException;
}
a) Geben Sie eine Klasse LinkedListStack an, die diese Schnittstelle durch eine verkettete Liste implementiert. Lösen Sie jeweils eine eigene Ausnahme aus, falls eine
Operation nicht definiert ist. Realisieren Sie Ihre Implementierung ohne den Import
fremder Klassen.
b) Testen Sie Ihre Implementierung, indem Sie eine Klasse LinkedListStackTest anlegen, mit der alle Methoden des Interfaces für die Datentypen Integer und Character
mit JUnit getestet werden. Ihr Test soll dabei auch den Fehlerfall top/pop für einen
leeren Keller enthalten.
c) Testen Sie anschließend Ihr Programm mit der folgenden Anwendung:Editoren besitzen häufig ein sog. Löschsymbol. Wenn beispielsweise das
Zeichen "#" das Löschsymbol ist, dann wird die Zeichenkette "abc#d##e"
zur Zeichenkette "ae", denn das erste Löschsymbol löscht "c", das zweite
"d" und das dritte "b".
Testen Sie Ihr Programm, indem Sie eine Zeichenkette aus einer Datei einlesen und
das Ergebnis ausgeben. Falls die Datei die Zeichenkette "abc#d##e" enthält, soll also
"ae" ausgegeben werden. Falls die Datei die Zeichenkette "abc #d #e" enthält, soll
dementsprechend "abcde" ausgegeben werden. Verwenden Sie dafür den folgenden
Algorithmus:
– Jedes Zeichen der Datei wird eingelesen.
– Zeichen, die nicht das Löschsymbol sind, werden in einem Keller des Datentyps
Character gespeichert.
– Falls das Zeichen das Löschsymbol ist, wird das oberste Kellerzeichen gelöscht.
– Falls alle Zeichen eingelesen wurden, befindet sich die gesuchte Zeichenkette in
umgekehrter Reihenfolge auf dem Keller. Geben Sie den Kellerinhalt in umgekehrter Reihenfolge aus. Verwenden Sie dazu einen zweiten Keller.
Wie Zeichen aus einer Datei eingelesen werden können, zeigt das folgende Beispielprogramm:
Java:
import java . i o . ∗ ;
public class Test {
public static void main ( String [ ] args ) {
File Reader f ;
int c ;
try {
f = new File Reader ( " input . txt " ) ;
while ( ( c = f . read ( ) ) != −1) {
System . out . print ( ( char) c ) ;
}
f . close ( ) ;
} catch ( I OException e ) {
System . out . println ( " Datei fehler ! " ) ;
}
}
}
Zuletzt bearbeitet von einem Moderator: