后缀表达式转化为前缀表达式...PASCAL

来源:百度知道 编辑:UC知道 时间:2024/05/27 18:46:55
我用笔会算,但是不会编程序,帮个忙

var
a:array[1..1000] of string;
s:string;
i,j,k,l,v:longint;
begin
readln(s);
j:=0; l:=length(s);
for i:=1 to l do
begin
if not(s[i]in['+','-','*','/']) then
begin
j:=j+1;
a[j]:=s[i];
end
else
begin
if (j>1)and(s[i]in['/'])and(s[i-1]in['*','/']) then
a[j]:='('+a[j]+')';
j:=j-1;
a[j]:=a[j]+s[i]+a[j+1];
if (i<l)and(s[i]in['+','-']) then
begin
k:=i;
v:=0;
repeat
k:=k+1;
if s[k]in['+','-','*','/'] then v:=v-1
else v:=v+1;
until (k=l)or(v<1);
if (k<l)and(s[k]in['*','/']) then a[j]:='('+a[j]+')';
end;
end;
end;
writeln(a[1]);