28.14 Die Klasse Knoten
 
  Wie bei Listen, wollen wir den Baum so anlegen, dass beliebige Objekte in ihn aufgenommen werden können. Wollen wir in einen solchen Baum Zahlen eintragen, so wie wir es bei den Überlegungen in den letzten drei Abschnitten getan haben bekommen wir Schwierigkeiten, die damit zusammenhängen, dass Integer-Objekte,  einer anderen Ordnungsrelation unterliegen, als int-Werte. Wir werden uns mit dieser Problematik später genauer auseinandersetzen. Wir sind im Moment 'zufrieden', wenn wir beliebige Objekte wie etwa Strings in den Baum eintragen können.
Bei der Konstruktion der Klassen gehen wir genau so vor, wie bei der Liste. An Stelle des (Listen)Elements tritt der Knoten.   

 

Download:
Knoten.java
package adt;

public class Knoten{
    
    protected Object wert;
    private Knoten links, rechts;

    public Knoten() {
        Object wert;
        links = rechts = null;
    }
    public Knoten(Object wert) {
        setWert(wert);
        links = rechts = null;
    }
    
    public void setWert(Object wert) {
        this.wert = wert;
    }
    public Object getWert() {
        return wert;
    }
    public void setLinks(Knoten links) {
        this.links = links;
    }
    public Knoten getLinks() {
        return links;
    }
    public void setRechts(Knoten rechts) {
        this.rechts = rechts;
    }
    public Knoten getRechts() {
        return rechts;
    }
}
Kommentare Die Klasse Element bei den Listen besaß eine Referenz auf ein Objekt der Klasse Element. Die Klasse Knoten besitzt dagegen 2 solche 'rekursive' Referenzen, nämlich links und rechts. In den Konstruktoren und den restlichen Methoden ist die Klasse Knoten analog zur Klasse Element angelegt. Die Gegenüberstellung der Klassen in UML-Notation zeigt diese Entsprechung deutlich.  
 
Vergleich Element mit Knoten in UML-Notation
zu 28.15 Die Klasse BinBaum
zur Startseite www.pohlig.de  (C) MPohlig 2004