MODULE BinTree; IMPORT Out; TYPE ElemT*=INTEGER; BinTreeT*=POINTER TO TreeNodeT; TreeNodeT=RECORD key:ElemT; left,right:BinTreeT; END; (*record*) PROCEDURE Init*(VAR t:BinTreeT); BEGIN (*Init*) ... END Init; PROCEDURE CleanUp*(VAR t:BinTreeT); BEGIN (*CleanUp*) ... END CleanUp; PROCEDURE InOrder*(t:BinTreeT); BEGIN (*InOrder*) IF t#NIL THEN InOrder(t.left); Out.F(" # ", t.key); InOrder(t.right) END (*if*) END InOrder; PROCEDURE Insert*(VAR t:BinTreeT; k:ElemT); BEGIN (*Insert*) ... END Insert; PROCEDURE Search*(t:BinTreeT; k:ElemT):BOOLEAN; BEGIN (*Search*) ... END Search; PROCEDURE NoOfNodes*(t:BinTreeT):INTEGER; BEGIN (* NoOfNodes *) ... END NoOfNodes; PROCEDURE Height*(t:BinTreeT):INTEGER; BEGIN (*Height*) ... END Height; END BinTree.