package pr2.collections.iterator; import java.util.Iterator; /** * Eine einfache, naive Stack Implementierung. * * @param Typ, der gespeichert werden soll. */ public class SimpleStack { // TODO: implements Iterable hinzufügen // Variablen sind nicht private wegen Zugriff durch den Iterator T[] stack; int pos; /** * Legt einen neuen Stack mit der gegebenen Größe an. * * @param size Größe des Stacks. */ @SuppressWarnings("unchecked") public SimpleStack(int size) { stack = (T[]) new Object[size]; pos = 0; } /** * Fügt dem Stack ein neues Element hinzu. * * @param o Element, das hinzugefügt werden soll. */ public void push(T o) { stack[pos++] = o; } /** * Holt das oberste Element und entfernt es. * * @return das oberste Element */ public T pop() { return stack[--pos]; } /** * Gibt das oberste Element zurück, ohne es zu entfernen. * * @return das oberste Element */ public T peek() { return stack[pos - 1]; } // TODO: Interface Iterable implementieren }