import java.awt.event.*; public class WeihnachtsbaumNode { Weihnachtsbaum weihnachtsbaum; // Die "Daten"-Variable WeihnachtsbaumNode next; // Nachfolger WeihnachtsbaumNode prev; // Vorgänger final WindowAdapter aktion_entfernen = new WindowAdapter(){ // Methode "windowClosed" überschreiben public void windowClosed(WindowEvent e){ // Beim Schließen des Fensters remove() aufrufen. remove(); } }; // Zählt Anzahl der gültigen Elemente public int count(){ int anzahl = 0; // An den Anfang der Liste gehen WeihnachtsbaumNode current = this; while(current.prev != null){ current = current.prev; } // Jetzt bis zum Ende zählen, aber nur gültige Daten do { if(current.weihnachtsbaum != null) anzahl++; current = current.next; } while(current != null); return anzahl; } ////////////////// Hier beginnt Ihre Aufgabe \\\\\\\\\\\\\\\\\\\\\\ public WeihnachtsbaumNode(){ // Konstruktor // Neuen Weihnachtsbaum erzeugen weihnachtsbaum = new Weihnachtsbaum(); weihnachtsbaum.addWindowListener(aktion_entfernen); next = null; // Noch kein Nachfolger prev = null; // Noch kein Vorgänger } public void add(WeihnachtsbaumNode w){ // Hinter aktuelles Element einfügen if(next != null) next.prev = w; w.next = next; w.prev = this; next = w; } // Aktuelles Element aus der Liste rauswerfen public void remove(){ if(prev != null) prev.next = next; if(next != null) next.prev = prev; weihnachtsbaum = null; // Auch den Datenfeld.Zeiger leeren } // Element w an die Liste anhängen public void append(WeihnachtsbaumNode w){ WeihnachtsbaumNode current = this; while(current.next != null){ current = current.next; } current.add(w); } //////////////////// Hier endet Ihre Aufgabe \\\\\\\\\\\\\\\\\\\\\\ } // <- Nicht löschen, Ende der Klassendefinition