Module CheckIt { Null=(,) Tree=((((Null,7,Null),4,Null),2,(Null,5,Null)),1,(((Null,8,Null),6,(Null,9,Null)),3,Null)) Module preorder (T) { Print "preorder: "; printtree(T) Print sub printtree(T) Print T#val(1);" "; If len(T#val(0))>0 then printtree(T#val(0)) If len(T#val(2))>0 then printtree(T#val(2)) end sub } preorder Tree Module inorder (T) { Print "inorder: "; printtree(T) Print sub printtree(T) If len(T#val(0))>0 then printtree(T#val(0)) Print T#val(1);" "; If len(T#val(2))>0 then printtree(T#val(2)) end sub } inorder Tree Module postorder (T) { Print "postorder: "; printtree(T) Print sub printtree(T) If len(T#val(0))>0 then printtree(T#val(0)) If len(T#val(2))>0 then printtree(T#val(2)) Print T#val(1);" "; end sub } postorder Tree Module level_order (T) { Print "level-order: "; Stack New { printtree(T) if empty then exit Read T Loop } Print sub printtree(T) If Len(T)>0 then Print T#val(1);" "; Data T#val(0), T#val(2) end if end sub } level_order Tree } CheckIt