/** Diese Klasse implementiert die Kellerstruktur mit Hilfe von
    verketteten Listen. Die Kelleroperationen werden
    auf die entspechenden Listenoperationen delegiert.
*/
class CharStack
{       private CharList  list;

	public CharStack ()
	{	list = new CharList();
	}

        /**
                Diese Methode loescht den Inhalt des Kellers,
                d.h. sie macht den aktuellen Stack zum leeren Stack.
        */
	public void clear ()
	{       list.clear();
	}

        /**
                Diese Methode fuegt den Wert c
                vorne an den aktuellen Keller an.

                @param  c    Wert des einzufuegenden Elements
        */
        public void push (char c)
	{	list.addFirst(c);
	}

        /**
                Diese Methode entfernt das
                erste Element aus der aktuellen Liste.

                Vorbedingung: head != null
        */
        public void pop () 
	{       list.rest();
	}
 
         /**
                Diese Methode heisst peek in java.util.Stack
		Sie berechnet den Wert
                des ersten Elements des aktuellen Kellers.

                Vorbedingung: head != null
        */                        
	public char top () 
	{       return list.getFirst();
	}

         /**
                Diese Methode prueft, ob der aktuelle Keller
                leer ist.
        */                        
	public boolean isEmpty ()
	{	return list.isEmpty();
	}

}
