// Knoten (Node) für eine doppelt verkettene Liste public class DoubleNode { Object data; DoubleNode prev; DoubleNode next; public DoubleNode() { // beim Erzeugen eines Objekts schon mal // alles auf null setzen (Listenanfang/Ende) prev = next = null; data = null; } // Aktuelles Element entfernt sich selbst aus der Liste public void remove() { // this ist hier redundant, wie sind ja schon // im betroffenen Objekt! if(prev != null) prev.next = next; if(next != null) next.prev = prev; } // Dieses Element hinter "aktuell" einfügen public void insert_after(DoubleNode aktuell) { prev = aktuell; next = aktuell.next; aktuell.next = this; if(next != null) next.prev = this; } // Hinter das aktuelle (this) Element ein neues (neu) einfügen public void append(DoubleNode neu) { neu.prev = this; neu.next = next; next = neu; if(neu.next != null) neu.next.prev = neu; } // Aufgabe für zuhause: Neues Element (neu) // VOR das aktuelle (this) einfügen public void prepend(DoubleNode neu) { // ... } }