Home > Informatik > Digitale Folien > Abstrakte Datentypen

Digitale Folien: Ein dynamischer Stack

Präsentation

siehe folgenden Text

Die Folie 17 aus der Präsentation "Implementation eines Stacks mit Zeigern"

Die Folien 1 bis 6 stellen die Klassen Knoten und Stack im Java-Quelltext vor. Hier zunächst der Quelltext der Klasse Knoten:

public class Knoten
{
   int wert;
   Knoten next;

   public Knoten(int w, Knoten n)
   {
      wert = w;
      next = n;
   }
}

Und hier der Quelltext der Stack-Klasse:

public class Stack
{
   private Knoten tos;

   public Stack()
   {
      tos = null;
   }

Der Zeiger (die Referenz) tos zeigt stets auf den "Top of stack".

Die Folien 7 und 8 veranschaulichen, wie der Konstruktor der Klasse Stack arbeitet.

Auf den Folien 9 bis 24 wird dann die Arbeitsweise der push()-Methode ausführlich und Schritt für Schritt erklärt.

siehe folgenden Text

Die Folie 9 aus der Präsentation

Auf der Folie 9 sehen wir beispielsweise die Situation vor Ausführung des push()-Befehls. Der bisherige Stack besteht aus zwei Elementen, tos zeigt auf das "oberste" Element. Am Ende dieser Sequenz (Folien 21 bis 24) wird dann der Java-Quelltext der dynamischen push()-Methode entwickelt.

Auf den Folien 25 bis 33 wird auf entsprechende Weise der pop()-Befehl entwickelt.

Für den top()- und den empty()-Befehl werden aufgrund der Leichtigkeit der Implementation nur je zwei bis drei Folien benötigt.

Die Folien 40 bis 47 erläutern dann, wie man einen universellen dynamischen Stack implementiert, also einen Stack, der nicht nur int-Zahlen speichern kann, sondern Objekte jeglicher Art. Auf die allerneuesten Java-Entwicklungen wird hier allerdings nicht eingegangen. Um ein konkretes Objekt aus dem Stack zurückzugewinnen, wird noch Typecasting eingesetzt:

public class Test
{
   Stack s;
   Bruch b;

   public Test()
   {
      s = new Stack();
      s.push(new Bruch(1,61));
      s.push(new Bruch(1,28));
      s.push(new Bruch(1,1));
      b = (Bruch) s.top();
      b.show();
   }
}

Hier sehen Sie nun eine Übersicht über alle 47 Folien dieser Präsentation.

siehe folgenden Text

Alle 47 Folien der Präsentation