战斗机有没有空调:看看这个程序(PASCAL)错在哪里

来源:百度文库 编辑:高考问答 时间:2024/05/03 23:07:08
问题:输入中序和后序遍历,求前序遍历....
program test3;
type point=^node;
node=record
left,right:point;
letter:char;
end;
var bt:point;
st1,st2:string;
procedure make(str1,str2:string;var t:point);
var stt1,stt2:string;
begin
if length(str1)=1 then begin
t^.letter:=str1[1];
{writeln(t^.letter);writeln(bt^.left^.letter);readln;}t^.left:=nil;t^.right:=nil;exit;end;
t^.letter:=str2[length(str2)];
if pos(str2[length(str2)],st1)=1 then
begin
t^.letter:=str1[1];t^.left:=nil;
make(copy(str1,2,100),copy(str2,1,length(str2)-1),t^.right);
exit;
end;
if pos(str2[length(str2)],str1)=length(str1) then
begin
t^.letter:=str2[length(str2)];t^.right:=nil;
make(copy(str1,1,length(str1)-1),copy(str2,1,length(str2)-1),t^.left);
exit;
end;
stt1:=copy(str1,1,pos(str2[length(str2)],str1)-1);
stt2:=copy(str1,pos(str2[length(str2)],str1)+1,100);
make(stt1,copy(str2,1,length(stt1)),t^.left);
make(stt2,copy(str2,length(stt1)+1,length(stt2)),t^.right);
end;
procedure out(bt:point);
begin
if bt=nil then exit;
write(bt^.letter);out(bt^.left);out(bt^.right);
end;
begin
new(bt);readln(st1);readln(st2);make(st1,st2,bt);out(bt);
readln;
end.
用字符串处理谁不会啊!我现在就是要探索这种建树处理的方法!

==我帮你改好贴上来。

PS:这题有必要用树吗??字符串处理就可以了吧~