28.15 Die Klasse BinBaum |
|
Wie auch die Klasse Liste, legen wir die Klasse BinBaum abstrakt an, implementieren also lediglich die Ausgaben, während das Einfügen in den Baum in der Klasse BinSuchBaum implementiert wird. Andere Einfügearten könnten dann in einer anderen Klasse implementiert werden. Natürlich lassen sich weitere Ausgabestrategien als zusätzliche Methoden der Klasse BinBaum. zufügen. | |
Download: BinBaum.java |
|
Kommentare | Die für
unsere Zwecke interessanteste Ausgabe ist die In-Order-Strategie. Dazu ist
die Methode inOrder()
implementiert. Die Parameterliste ist leer, da beim Aufruf die Wurzel, an
der der ganze Baum aufgehängt ist, ja nicht übergeben werden soll. Das
Verwalten des Baumes ist schließlich nicht der Job der GUI- bzw.
Demo-Klasse. Da aber die Ausgabe rekursiv erfolgt, wobei ein Knoten
übergeben werden muss, implementieren wir zusätzlich
inOrder(Knoten knoten).
Der rekursive Aufruf stoppt, es erfolgt also keine Ausgabe und kein
rekursiver Aufruf, wenn der aktuelle Knoten null ist. Die Ausgabe geht so,
dass zunächst der linke Teilbaum durch den rekursiven Aufruf von
inOrder(getLinks())
abgearbeitet wird, danach erst wird der aktuelle Knoten ausgegeben und
schließlich der rechte Teilbaum durch den rekursiven Aufruf von
inOrder(getLinks())
abgearbeitet. Die anderen Ausgabemethoden sind analog konstruiert und müssen deshalb nicht mehr weiter kommentiert werden. |
zu | 28.16 Die Klasse BinSuchBaum |
zur Startseite | www.pohlig.de (C) MPohlig 2003 |