二叉树广义表- 图图的日志- 网易博客

二叉树广义表

type
  pointer=^node;
  node=record
         data:char;
         left,right:pointer;
end;
var s:array[1..200] of pointer;
    head,p:pointer;
    k,top:integer;
    ch:char;
procedure print(p:pointer);
  begin
    write(p^.data);
    if p^.left<>nil then print(p^.left);
    if p^.right<>nil then print(p^.right);
  end;

begin
  read(ch);
  head:=nil;
  while ch<>'@' do
    begin
      case ch of
        'A'..'Z':
          begin
            new(p);
            p^.data:=ch;
            p^.left:=nil;
            p^.right:=nil;
            if head=nil then
              head:=p
            else
              case k of
                1:s[top]^.left:=p;
                2:s[top]^.right:=p;
              end;
          end;
        '(':
          begin
            top:=top+1;
            s[top]:=p;
            k:=1;
          end;
        ')':top:=top-1;
        ',':k:=2;
      end;
      read(ch);
    end;
  print(head);
  writeln;
end.

郑重声明:资讯 【二叉树广义表- 图图的日志- 网易博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——