procedure PreOrder(P: Ptr)i begin if P <> nil then begin Write(Output,pi.Info)i PreOrder(pi.LLink)i PreOrder(Pi.RLink) end end { PreOrder }i procedure InOrder(P: Ptr)i begin if P <> nil then begin InOrder(Pi.LLink)i Write (Output, Pi.Info)i InOrder(Pi.RLink) end end { InOrder }i procedure PostOrder(P: Ptr)i begin if P <> nil then begin PostOrder(pi.LLink)i PostOrder(Pi.RLink)i Write (Output,pi.Info) end end { PostOrder }i procedure Enter(var P: Ptr)i begin Read(Input, Ch)i Write (Output, Ch)i if Ch <> '.' then begin New(P)i Pi.Info .= Chi Enter(pi.LLink)i Enter (Pi.RLink) end else P := nil end Enter}i begin Traversal Enter(Root)i Writeln(Output)i PreOrder(Root)i Writeln(Output)i InOrder(Root)i Writeln(Output)i PostOrder(Root)i Writeln(Output) end { Traversal } 

## Produces as results: 

abc .. de .. fg ... hi. . jkl. .m . . n .. abcdefghijklmn cbedgfaihlkmjn cegfdbilmknjha 

