Schreiben Sie ein Programm zur Verwaltung von binären Suchbäumen gemäß folgendem Implementierungsvorschlag:
DEFINITION OF MODULE BinTrees; TYPE ElemT*=INTEGER; BinTreeT*=POINTER TO TreeNodeT; TreeNodeT=RECORD key:ElemT; left,right:BinTreeT; ....... END; PROCEDURE Init*(VAR t:BinTreeT); (* Initialisierung des Baums vor der ersten Verwendung *) PROCEDURE CleanUp*(VAR t:BinTreeT); (* Aufräumungsarbeiten nach der letzten Verwendung eines Baumes *) PROCEDURE InOrder*(t:BinTreeT); (* Baumdurchlauf mit Ausgabe der Knotenwerte und des Knotenabstands von der Wurzel *) PROCEDURE Insert*(VAR t:BinTreeT; k:ElemT; VAR ok:BOOLEAN); (* Einfügen Element k in den Suchbaum, keine Balanzierung *) PROCEDURE Search*(t:BinTreeT; k:ElemT):BOOLEAN; (* Suchen Element k im Suchbaum *) PROCEDURE NoOfNodes*(t:BinTreeT):INTEGER; (* Liefert die Anzahl der Knoten im Baum *) PROCEDURE Height*(t:BinTreeT):INTEGER; (* Liefert die Höhe des Baums = Anzahl der Knotenebenen *) PROCEDURE Delete*(VAR t:BinTreeT; k:ElemT); (* Löschen des Elementes k aus dem Suchbaum *) END BinTrees.