import java.awt.*; import java.io.IOException; class StackFehler extends Exception{ public StackFehler(){super();} public StackFehler(String s){super(s);} } class ListNode{ Object e; ListNode next = null; ListNode(Object el){ e = el;} } class Stack{ private ListNode liste = null; boolean istLeer (){ return liste == null;} void push (Object e){ ListNode neueZelle = new ListNode(e); neueZelle.next = liste; liste = neueZelle; } void pop () throws StackFehler { if (istLeer()) throw new StackFehler("StackFehler: Zugriff auf leeren Stack !"); liste = liste.next; } Object top () throws StackFehler { if (istLeer()) throw new StackFehler("StackFehler: Zugriff auf leeren Stack !"); return liste.e; } Object popTop () throws StackFehler { Object e = top(); pop(); return e; } } public class LiStack { public static void main(String args[]) { System.out.println("List Stack Tester"); System.out.println(""); String beispiel = "BEISPIEL"; int l = beispiel.length(); Stack meinStack = new Stack(); for (int i = 0; i < l; i++){ char c = beispiel.charAt(i); System.out.print(c); //Character e = new Character(c);// nicht mehr nötig ab jdk1.5 //meinStack.push(e);// nicht mehr nötig ab jdk1.5 meinStack.push(c); } System.out.println(); try { for (int i = 0; i < l; i++){ Object e = meinStack.popTop(); System.out.print(e); } System.out.println(); } catch(StackFehler s){System.out.println(s);} } }