|
Ein Stack ist eine Datenstruktur, die nach dem LIFO-Prinzip (last-in-first-out) arbeitet. Die Elemente werden am vorderen Ende der Liste eingefügt und von dort auch wieder entnommen. Das heißt, die zuletzt eingefügten Elemente werden zuerst entnommen und die zuerst eingefügten zuletzt.
In Java ist ein Stack eine Ableitung eines Vektors, der um neue Zugriffsfunktionen erweitert wurde, um das typische Verhalten eines Stacks zu implementieren. Obwohl dies eine ökonomische Vorgehensweise ist, bedeutet es, daß ein Stack alle Methoden eines Vektors erbt und damit auch wie ein Vektor verwendet werden kann. Wir wollen diese Tatsache hier ignorieren und uns mit den spezifischen Eigenschaften eines Stacks beschäftigen.
Der Konstruktor der Klasse Stack ist parameterlos:
public Stack() |
java.util.Stack |
Das Anfügen neuer Elemente wird durch einen Aufruf der Methode push erledigt und erfolgt wie üblich am oberen Ende des Stacks. Die Methode liefert als Rückgabewert das eingefügte Objekt:
public Object push(Object item) |
java.util.Stack |
Der Zugriff auf das oberste Element kann mit einer der Methoden pop oder peek erfolgen. Beide liefern das oberste Element des Stacks, pop entfernt es anschließend vom Stack:
public Object pop() public Object peek() |
java.util.Stack |
Des weiteren gibt es eine Methode empty, um festzustellen, ob der Stack leer ist, und eine Methode search, die nach einem beliebigen Element sucht und als Rückgabewert die Distanz zwischen gefundenem Element und oberstem Stack-Element angibt:
public boolean empty() public int search(Object o) |
java.util.Stack |
Das folgende Beispiel verdeutlicht die Anwendung eines Stacks:
|
![]() |
|
![]() |
Das Programm erzeugt einen Stack
und fügt die Werte "Erstes Element", "Zweites Element" und "Drittes
Element" ein. Anschließend entfernt es so lange Elemente aus
dem Stack, bis die Ausgabeschleife durch eine Ausnahme des Typs EmptyStackException
beendet wird. Durch die Arbeitsweise des Stack
werden die Elemente in der umgekehrten Eingabereihenfolge auf dem
Bildschirm ausgegeben:
Drittes Element
Zweites Element
Erstes Element
|
Go To Java 2, Addison Wesley, Version 1.0.2, © 1999 Guido Krüger, http://www.gkrueger.com |