MODULE Treetest; IMPORT In,Out,T:=BinTree; PROCEDURE ProgMain*; VAR tree:T.BinTreeT; k: T.ElemT; code: CHAR; BEGIN (*ProgMain*) REPEAT In.Echo(FALSE); In.Prompt("?/1/2/3/4/5/E: "); In.Char(code); code:=CAP(code); In.Echo(TRUE); IF ~In.Done THEN code:="E" END; (*if*) CASE code OF "0", "H", "?": Out.String("(?) HELP: ?=Help / 1=Init / 2=CleanUp / 3=iNsert / 4=Search / 5=Print / E=End") | "1", "I": Out.String("(1) INIT"); T.Init(tree) | "2", "C": Out.String("(2) CLEANUP"); T.CleanUp(tree); | "3", "N": Out.String("(3) INSERT: "); In.Prompt("Key="); In.Int(k); T.Insert(tree, k) | "4", "S": Out.String("(4) SEARCH: "); In.Prompt("Key="); In.Int(k); IF T.Search(tree, k) THEN Out.String(" found!") ELSE Out.String(" not found!") END (*if*) | "5", "P": Out.String("(5) PRINT: Inorder="); T.InOrder(tree); Out.F2("$ NoOfNodes=# Height=#", T.NoOfNodes(tree), T.Height(tree)) | "6", "E": Out.String("(6) END OF TEST"); ELSE Out.String("(x) ERROR:?=Help / 1=Init / 2=CleanUp / 3=iNsert / 4=Search / 5=Print / E=End") END; (*case*) Out.Ln UNTIL ~In.Done OR (code="E") OR (code="6") END ProgMain; END Treetest.