{$T+}program tree(input,output);const  strlen = 20;type  string = packed array[1..strlen] of char;  tree = ^treerec;  treerec = record    data : string;    left : tree;    right : tree  end;var  root : tree;  filename, data : string;procedure init(var root : tree;               item : string);begin  new(root);  root^.data := item;  root^.left := nil;  root^.right := nilend;procedure insert(var root : tree;                 item : string);begin  if root = nil then    init(root,item)  else  with root^ do    if item < data then      insert(left,item)    else if item > data then      insert(right,item)end;procedure print(root : tree);begin  with root^ do begin    if left <> nil then      print(left);    writeln(data);    if right <> nil then      print(right)  endend;procedure inpt(var data : string);var  i   : integer;  ch  : char;begin  data[1] := chr(&0d);  for i := 2 to strlen do    data[i] := ' ';  while input^ = ' ' do    read(ch);  i := 1;  while not eoln and (i <= strlen) do  begin    read(ch);    data[i] := ch;    i := i+1;  end;  readln;end;begin{  if eoln then begin    write('File: ');    readln  end;  inpt(filename);}  reset(input,'text'{filename});  root := nil;  repeat    inpt(data);    insert(root,data)  until eof;  writeln;  writeln('Sorted...');  print(root)end.