/** Diese Klasse repraesentiert Listen als einfach verkettete Listen, wobei ein Anker auf ein einfach verkettetes Listenelement gesetzt wird. */ class CharList { private CharListElem head; /** Dieser Konstruktor erzeugt eine leere Liste. @param elem das einzufuegende Element */ CharList () { head = null; } /** Dieser Konstruktor erzeugt eine eineelementige Liste. @param c der Wert des konstruierten Elements */ CharList (char c) { head = new CharListElem (c); } /** Diese Methode loescht den Inhalt des Listenobjekts, d.h. sie macht die aktuelle Liste zur leeren Liste. */ public void clear () { head = null; } /** Diese Methode fuegt ein neues Listenelement mit Wert c als erstes Element in die Liste ein. @param c das einzufuegende Element */ public void addFirst (char c) { CharListElem hilf = new CharListElem (c); hilf.setNext(head); head = hilf; } /** Diese Methode loescht das erste Element der aktuellen Liste. Vorbedingung: head != null */ public void rest () { head = head.getNext(); } /** Diese Methode berechnet den Wert des ersten Elements der aktuellen Liste. Vorbedingung: head != null */ public char getFirst () { return head.getData(); } /** Diese Methode prueft, ob die aktuelle Liste leer ist. */ public boolean isEmpty () { return head == null; } /** Diese Methode berechnet die Laenge der aktuellen Liste. */ public int size () { CharListElem hilf = head; int i = 0; while (hilf != null) { hilf = hilf.getNext(); i = i+1; } return i; } /** Diese Methode prueft, ob die aktuelle Liste ein Element mit Wert c enthaelt. @param c Wert des gesuchten Elements */ public boolean contains (char c) { CharListElem hilf = head; while (hilf != null && hilf.getData() != c) hilf = hilf.getNext(); return (hilf != null); } /** Diese Methode berechnet den Wert des letzten Elements der aktuellen Liste. Vorbedingung: head != null */ public char getLast () { CharListElem position = head; while (position.getNext() !=null) { position = position.getNext(); } return position.getData(); } /** Diese Methode berechnet den Wert des letzten Elements deraktuellen Liste und entfernt dieses Element aus der Liste. Vorbedingung: head != null */ public char removeLast () { CharListElem position = head, vorposition = null; while (position.getNext() !=null) { vorposition = position; position = position.getNext(); } if (vorposition == null) head = null; else vorposition.setNext(null); return position.getData(); } }