Zur Themenübersicht     

Suchbäume: Baumknoten

In dieser Doku liegen zwei Realisierungen von Suchbäumen vor. Die im Unterricht erarbeitete (Download hier, 41 kB) liegt den folgenden Kapitel zu Grunde. Bei dieser Version werden Einfüge- Such und Löschoperationen nur für die Baumknoten zur Verfügung gestellt. Die Verwaltung des gesamten Baumes übernimmt das Hauptformular. Bei der Version 'Moritz' gibt es  - neben anderen Bezeichnungen - den Hauptunterschied, dass noch eine eigene Klasse für den gesamten Baum vorhanden ist.

Um Suchbäume bearbeiten zu können, müssen die Baumknoten über zusätzliche Eigenschaften verfügen. Wir haben daher eine Nachfolgeklasse der 'einfachen' Baumknoten eingeführt:

Hier ein UML-Diagramm dazu:

Wichtig dabei nur die neuen öffentlichen Methoden:

Dokumentation der Klasse "TSearchTreeNode"

Beschreibung der Klasse:


Vorgängerklasse: TTreeNode.
---------------------------------------------------


Attribute: keine neuen Attribute 
---------------------------------------------------


Methoden
---------------------------------------------------

deleteRoot ( ) 
Nicht öffentliche Methode !!
Löscht den (aktuellen) Knoten aus dem Baum. Wobei dieses Löschen je nach Anzahl der 
Nachfolgeknoten unterschiedlich realisiert wird. (Siehe Löschen !)

max ( ) 
Nicht öffentliche Methode.
Liefert den Knoten mit dem größten Inhalt. Das ist der am weitesten rechts stehende Knoten 
des Baumes. der mit dem aktuellen Knoten beginnt.
Wird benötigt zum Löschen eines Knotens.

delete ( Elem:TSortElement ) : 
Wenn im Knoten oder einem seiner nachfolgeknoten ein Element mit dem Inhalt 'Elem' 
gespeichert ist, dann wird der entsprechende Knoten aus dem Baum gelöscht, wobei die 
Ordnung im Baum erhalten bleibt.

insert ( Elem:TSortElement ) : 
Es wird ein neuer Knoten mit dem Inhalt 'Elem' erzeugt und richtig im Baum eingeordnet.

isElement ( Elem:TSortElement ) : Boolean
Liefert True, wenn ein Knoten mit dem Inhalt 'Elem' im Baum - d.h. im Knoten oder seinen 
Nachfolgeknoten - enthalten ist.

search ( Elem:TSortElement ) : TSearchTreeNode
Wenn ein Knoten mit dem Inhalt 'Elem' im Baum vorhanden ist, dann wird der Knoten mit dem 
entsprechenden Inhalt geliefert. Sonst wird ein leerer Knoten geliefert.


//Ende der Dokumentation