Zur Themenübersicht     

Die Klasse der Baumknoten: TTreeNode

Um (binäre) Bäume Implementieren zu können, müssen wir uns zuerst mit den einzelnen Knoten beschäftigen, aus denen ein Baum besteht. Zur Realisierung der Baumknoten haben wir die Klasse TTreeNode eingeführt. Hier das UML-Klassendiagramm:

Dokumentation der Klasse "TTreeNode"

Klasse zur Verwaltung von Objekten durch einen binären Baum.

Objektbeziehungen:

Kennt über einen Zeiger (ValueP)  ein (oder kein) Objekt der Klasse TObject
und (über LeftP und RightP) zwei, einen oder gar keinen Nachfolgeknoten

Attribute:

ValueP : TObject        Zeiger auf das Datenobjekt

LeftP : TTreeNode  
     Zeiger auf den linken Nachfolgeknoten

RightP : TTreeNode     Zeiger auf den rechten Nachfolgeknoten

Methoden:

CreateNil ( ) 
Erzeugt einen leeren Baumknoten. 

Ein leerer Baumknoten ist also ein echter Knoten, bei dem Knotenzeiger und Nachfolgerzeiger alle auf nil zeigen. 


Create ( Elem:TObject ) : 


Erzeugt einen neuen Baumknoten mit zwei leeren Teilbäumen, dessen Knotenzeiger (ValueP) auf das Objekt Elem zeigt. 
Anmerkung: Die zwei leeren echten Teilbäume erleichtern zusammen mit der Methode writeValue das Einfügen in einen Baum erheblich. 


destroy ( ) 
Löscht den Knoten und alle Folgeknoten.
NICHT GELÖSCHT werden die Objekte, auf welche die Knotenzeiger (ValueP) zeigen. 
Sollen diese gelöscht werden, muss dies vom Rahmenprogramm geleistet werden.

makenil ( ) 

Läßt Knotenzeiger (ValueP) und Nachfolgezeiger alle auf nil zeigen.
VORSICHT: Die Methode löscht keine Nachfolgeknoten und auch nicht die Objekte, auf 
welche die Knotenzeiger verweisen.

WriteLeftNode ( node:TTreeNode ) : 
Hängt den Knoten 'node' links an den das TTreeNode-Objekt an.

WriteRightNode ( node:TTreeNode ) : 
analog

WriteValue ( Elem:TObject ) : 
Läßt den Knotenzeiger (ValueP) auf das Objekt 'Elem' verweisen. 
War der Knoten vorher leer werden zusätzlich noch zwei leere Teilbäume angehängt.

isEmpty ( ) 
Prüft, ob der Knotenzeiger (ValueP) auf nil zeigt.

IsLeaf ( ) 
Prüft, ob der Knoten ein Blatt ist.

ReadValue ( ) 
Liefert das Objekt, auf welches der Knotenzeiger (ValueP) verweist.

ReadLeftNode ( ) 
Liefert den linken Nachfolgeknoten.

ReadRightNode ( ) 
analog

//Ende der Dokumentation


Nach dieser Dokumentation sollte der Quelltext der entsprechenden Unit nachvollziehbar sein.