您的位置:首页 > 其它

二叉树的遍历和生成——Pascal实现

2015-11-14 19:06 330 查看
吾今日写了一个关于二叉树的程序:

program Project1;
type btree=^node;
  node=record
      data:char;
      l,r:btree;
    end;
var head : btree;
function inittree(var t:btree):btree;
var
  ch:char;
begin
  read(ch);
  if (ch='#') then exit(nil)
  else begin
      new(t);
      t^.data:=ch;
      t^.l:=nil;
      t^.r:=nil;
      inittree(t^.l);
      inittree(t^.r);
  end;
end;
procedure TBT_pre(var p:btree);
begin
  if (p=nil) then exit;
  write(p^.data:2);
  TBT_pre(p^.l);
  TBT_pre(p^.r);
end;
procedure TBT_in(var p:btree);
begin
  if (p=nil) then exit;
  TBT_in(p^.l);
  write(p^.data:2);
  TBT_in(p^.r);
end;
procedure TBT_post(var p:btree);
begin
  if (p=nil) then exit;
  TBT_post(p^.l);
  TBT_post(p^.r);
  write(p^.data:2);
end;
begin
  new(head);
  writeln('please input string like ABD##E##C## to make preorder binary tree(#:means nil)');
  inittree(head);
  readln;
  write('this binary tree preorder is: ');
  TBT_pre(head);
  writeln;
  write('this binary tree inorder is:  ');
  TBT_in(head);
  writeln;
  write('this binary tree postorder is:');
  TBT_post(head);
  readln;
end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: