Procedures and Functions  119  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 }  abc .. de .. fg ... hi. . jkl.  .m . . n ..  abcdefghijklmn  cbedgfaihlkmjn  cegfdbilmknjha  Produces as results: 