|##########| |#MAGIC #|CKOLFLGB |#PROJECT #|"" |#PATHS #|"StdProject" |#FLAGS #|xx---x--x---xxx----------------- |#USERSW #|-------------------------------- |#USERMASK#|-------------------------------- |#SWITCHES#|x----xxxxx-xx--- |##########| DEFINITION MODULE OTrees; DEFINITION MODULE StdTrees(Tree : POINTER TO TreeObj); IMPORT OLists; DEFINITION MODULE TreeList = OLists.BiLists(Tree); FROM TreeList IMPORT Condition,ApplyProc; TYPE TreeObj = OBJECT OF TreeList.Node, TreeList.List; parent : Tree; CONSTRUCTOR Create; DESTRUCTOR Delete; METHOD InsertFirst(n : Tree); METHOD InsertLast(n : Tree); METHOD InsertAfter(n,after : Tree); METHOD InsertBefore(n,before : Tree); METHOD ApplyDepthFirst(before,between,after : ApplyProc := NIL); METHOD ApplyBreadthFirst(app : ApplyProc); |METHOD FindDepthFirst(if : Condition;from : Tree := NIL):Tree; |METHOD FindBreadthFirst(if : Condition;from : Tree := NIL):Tree; METHOD Clone():Tree; END; END StdTrees; END OTrees.