Konrad-Adenauer-Gymnasium Langenfeld

Informatik Grundkurs Q1

Die Klasse Knoten

Bäume sollen genauso wie Listen so programmiert werden, dass sie dynamisch beliebig viele Elemente enthalten können. Dazu sollen die Inhalte wieder beliebige Elemente sein dürfen. An die Stelle unserer bisherigen ListenElemente treten jetzt hier die Knoten:

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

  public Knoten()
  {
    Object Inhalt;
    links = rechts = null;
  }
  public Knoten(Object inhalt)
  {
    setInhalt(inhalt);
    links = rechts = null;
  }

  public void setInhalt(Object inhalt)
  {
    this.Inhalt = inhalt;
  }

  public Object getInhalt()
  {
    return this.Inhalt;
  }
  
  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;
  }
}

Die Klasse ListenElement bei den Listen besaß eine Referenz auf ein Objekt der Klasse ListenElement (next). Bei der doppelt verketteten Liste wurde zwar auch noch auf das Vorgänger-Element referenziert (prior), aber das spielt in diesem Zusammenhang keine Rolle.

Die Klasse Knoten besitzt nun zwei solche 'rekursive' Referenzen, nämlich links und rechts. 

Im Gegensatz zur Klasse ListenElement wollen wir hier aber sauber objektorientiert arbeiten, daher sind die Eigentschaften mit get- und set-Methoden ausgeführt.

Die UML-Darstellung von Knoten sieht dann im Vergleich zu ListenElement so aus:


© Ralph-Erich Hildebrandt, 09. Mai 2005