回 帖 发 新 帖 刷新版面

主题:编2叉树???????

谁会编一个程序  表示2叉树啊``
要求 输入 n(2叉树层数)  P(结点数)  还P行数 代表 结点   每行3个  第一个是 父 第2个是 左儿 第3个是右儿  要求 顺序输出 2叉树顺序遍历 空的 用0表示

比如 输入 4(层数)
9(结点数)
a b c (第一个是第2 3个的父亲 第2 3个 分别是左右儿子)  
b d e
c '0' f('0'表示为空)
d '0' '0'
e g '0'
f h i
g '0' '0'
h '0' '0'
i '0' '0'
输出 abcde0f00g000hi (0表示为空)

回复列表 (共1个回复)

沙发

var
T:array[1..100]of char;
f,l,r:char;
n,p,i,j,len:integer;
begin
for i:=1to 100 do T[i]:='0';
readln(n,p);
   len:=1;
    for i:=1 to n do len:=len*2;
    len:=len-1;
    readln(T[1],T[2],T[3]);
    for i:= 1 to (p-1) do begin
    readln(f,l,r);
     for j:=1 to len do
     if T[j]=f then break;
    T[2*j]:=l;
    T[2*j+1]:=r;
      end;
   for i:=1 to len do write(T[i],' ')
end.

我来回复

您尚未登录,请登录后再回复。点此登录或注册