package verketteteListen; public class Liste { private Node anker = null; private Node last = null; /** * hängt Knoten n am Ende der Liste an (für Queue). * * @param n * neuer Knoten */ public void put(Node n) { if (last == null) { // erstes Element anker = n; last = n; } else { last.next = n; last = n; } } /** * liefert erstes Element und entfernt dieses aus der Liste * * @return erster Knoten oder null */ public Node get() { Node ret = null; if (anker != null) { ret = anker; anker = anker.next; if (anker == null) { // war das das letzte Element? last = null; } } return ret; } /** * pop() für Verwendung als Stack. * * @return erstes Element */ public Node pop() { return get(); } /** * fügt Knoten vorne ein (für Stack). * * @param n * neuer Knoten */ public void push(Node n) { if (anker == null) { anker = n; last = anker; } else { n.next = anker; anker = n; } } /** * liefert Liste als String. * * @return "[erstes,zweites,...]", "[]" bei leerer Liste (KEINE Leerzeichen) */ public String toString() { String ret = "["; Node n; for (n = anker; n != null && n.next != null; n = n.next) { ret += n + ","; } if (n != null) { ret += n; } ret += "]"; return ret; } }