/**
* Bestandteil des Zentralabiturs 2009
*
* Objekte der Klasse Stack (Keller, Stapel) verwalten beliebige Objekte nach dem
* Last-In-First-Out-Prinzip, d.h., dass das zuletzt abgelegte Element als erstes wieder
* entnommen wird. Die Klasse Stack stellt Methoden in folgender Syntax zur Verfügung:
*
* Konstruktor Stack() * Nachher Ein leerer Stapel ist erzeugt. **/ public Stack() { this.top = null; } /** * Ist der Stapel leer?
* Anfrage isEmpty() * Nachher Die Anfrage liefert den Wert true, wenn der Stapel keine Elemente * enthält, sonst liefert sie den Wert false. ** * @return true, wenn der Stapel keine Elemente enthält, sonst false. */ public boolean isEmpty() { return this.top == null; } /** * Entfernt das oberste Stapelelement.
* Auftrag pop() * Vorher Der Stapel ist nicht leer. * Nachher Das zuletzt eingefügte Element ist aus dem Stapel entfernt. **/ public void pop() { if (!this.isEmpty()) { this.top = this.top.getNext(); } } /** * Legt ein neues Element oben auf dem Stapel.
* Auftrag push (Object pObject) * Vorher Der Stapel ist erzeugt. * Nachher pObject liegt oben auf dem Stack. ** * @param pObject neues Stapelelement. */ public void push(Object pObject) { Element newItem = new Element(pObject, null); if (!this.isEmpty()) { newItem.setNext(this.top); } this.top = newItem; } /** * Liefert das oberste Stapelelement ohne den Stapel zu verändern.
* Anfrage top():Object * Vorher Der Stapel ist nicht leer. * Nachher Die Anfrage liefert das oberste Stapelelement. Der Stapel ist unverändert. ** * @return oberstes Stapelelement */ public Object top() { Object item = null; if (!this.isEmpty()) { item = this.top.getItem(); } return item; } }