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

吾今日写了一个关于二叉树的程序:

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.


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值