program ex1; const m=20; type code=record data:char; lch,rch:integer; end; treetype=array[1..m]of code; var tree:treetype; n,i:integer; procedure order(i:integer); begin if i<>0 then begin order(tree[i].lch); order(tree[i].rch); write(tree[i].data); end; end; begin readln(n); for i:=1 to n do with tree[i] do readln(data,lch,rch); order(1); end. 对于这类的问题,这就是一个模型 order(tree[i].lch); order(tree[i].rch); write(tree[i].data); 表示“左子树,右子树,根” 要是要中序遍历就改成 order(tree[i].lch); write(tree[i].data); order(tree[i].rch); 就是“左子树,根,右子树” 要前序的话就是 write(tree[i].data); order(tree[i].lch); order(tree[i].rch); 一样的道理,这是记录类型里面很基础的一个题