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.

schule/if/q1q2/adt.txt · Zuletzt geändert: 2018/05/31 19:09 von ahrens
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0