Zur Themenübersicht     

Suchbäume: Einfügen

Der Vorgang des Einfügens ist im Kapitel 'Definition und Aufbau' am Beispiel sehr schön erklärt. Hier daher nur eine kurze Erläuterung des zugehörigen Quellcodes (Bezug wieder das Delphi-Projekt:  5_Suchbaum_Node_Lsg )

Einfügen in einen Suchbaum



Bei leerem Baum wird einfach die Methode
'writeValue' der normalen Baumknoten benutzt.
(s.u.)

Ist das neu einzufügende Element größer als 
Wurzelknoten, wird im rechten Teilbaum
eingefügt,
SONST wird im linken Teilbaum eingefügt.
Programmcode:

procedure TSearchTreeNode.insert(Elem: TSortElement);
begin
   if isempty then
      Writevalue(Elem)
   else
      if Elem.GreaterThan(TSortElement(ReadValue)) then
         TSearchTreeNode(ReadRightNode).insert(Elem)
      else
         TSearchTreeNode(ReadLeftNode).insert(Elem)
end;

TTreeNode.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.