Schnittstelle des ADT Keller (Prinzip LIFO: Last in, first out):
empty | : | Keller | ![]() |
boolean | liefert true, falls Keller leer ist, false sonst |
push | : | Keller ![]() |
![]() |
Keller | legt Element auf Keller |
top | : | Keller | ![]() |
Objekt | liefert oberstes Element |
pop | : | Keller | ![]() |
Keller | entfernt oberstes Element |
Semantik der Kelleroperationen:
Source: Keller.java JavaDoc: Keller.html
Implementation eines Kellers mit Verweisen
Implementation eines Kellers mit einem Array (LIFO: Last in, first out)
Source: VerweisKeller.java JavaDoc: VerweisKeller.html Die folgenden beiden Beispiele zeigen, dass zum Speichern von Werten aus primitiven Datentypen zunächst das Verpacken der Werte mithilfe der bereits erwähnten Wrapperklassen erforderlich ist. So wird durch den Konstruktor new Integer(i) ein Integer-Objekt erzeugt mit dem (nicht mehr veränderbaren) Wert i. Der Wert dieses Objekts kann über die Methode intValue() ermittelt werden.
Source:
Reverse.java
JavaDoc:
Reverse.html
Applet:
Source:
Klammer.java
JavaDoc:
Klammer.html
Applet:
Um die Lesbarkeit der Programme zu erhöhen, soll nun das
Einpacken und Auspacken der Wrapper-Klassen-Objekte
gekapselt werden. Hierzu leiten wir vom Interface Keller
das Interface CharKeller ab und von der Klasse VerweisKeller
leiten wir die Klasse VerweisCharKeller ab. Erforderlich wird eine
neue Methode ctop(), da Java nicht zwei identische Signaturen
mit unterschiedlichem Rückgabewert erlaubt. Getestet wird die
Implementation in der Klasse Postfix, welche einen eingelesenen
Infix-Ausdruck in die entsprechende Postfix-Notierung überführt.
Source: CharKeller.java JavaDoc: CharKeller.html
Source: VerweisCharKeller.java JavaDoc: VerweisCharKeller.html
Source:
Postfix.java
JavaDoc:
Postfix.html
Applet: