Inhaltsverzeichnis
Abstrakte Datentypen (ADT)
- definiert durch vorgegebene Methoden
Beispiel: Stack
- Methodendefinitionen: void pop(), Object top(), boolean isEmpty(), void push(Object pObject)
- Beispiele für Object: int, Punkt
- Methodenaufrufe: pop(), top(), isEmpty(), push(x)
- Stack-Grundprinzip: Last in, first out (LIFO)
- Realisierung des Stacks: private Object[] liste;
- Sinnvolle Ergänzung der Stack-Klasse: String anzeigen()
Methode anzeigen()
- Problem bei der Anzeige: Zugriff mit Stack-Methoden nur auf oberstes Element möglich, die Anzeige sollte sich aber von unten nach oben aufbauen.
- Lösung: Daten nacheinander auslesen (stapel.top()), in neu angelegtes Array in der Testklasse schreiben, oberstes Element des Stapels entfernen (stapel.pop()) - … - Array ausgeben (von hinten nach vorn).
- Neues Problem: Der Stapel ist jetzt leer.
- Lösung: Elemente des Stapels mit stapel.push(wert) zurück übertragen - dabei wieder auf richtige Reihenfolge achten (von hinten bis Index 0).
Die Schritte „ausgeben“ und „Stapel wieder füllen“ lassen sich auch in einer Schleife kombinieren.