回 帖 发 新 帖 刷新版面

主题:[讨论]大家都来帮帮我吧!!!(3道题)(紧急求助啊!!!)

[color=FF0000]1.把一个表达式转化为后缀式(用栈)

2.走迷宫(n*n大小,n<=50,用栈)
由文件读入,第一行是迷宫大小n,再往下是迷宫图,一圈和中间有障碍物(用“#”表示),*是入口,!是出口
{思路提示:先从出口出发就朝右走,走的通就走,走的通就把这个地方的坐标记录下,走不通就往下,再走不通就往左、上,全都走不通就把此处打上标记,以后就不走这里,然后往回退一步,换一个方向继续走,直到走道出口,如果一步一步退到了入口,就说明这个迷宫过不去}



最好把代码发上来,谢谢各位大虾了!!!小弟感激不尽!!狂加分啊!!!!!

现在第3题已经解决了,谁告诉我前两道啊?????!!!!!!!!!狂加分啊!!!!!color]

回复列表 (共3个回复)

沙发

1没做过
2的代码有的
http://www.firstdev.net/bbs/read.php?tid=128&u=41
3么就是左括号“(”就入栈,遇到右括号“)”就出栈,等到所有的括号都用完,察看栈是否是空的。如果是空的就是匹配的,否则不匹配。

板凳

第一、二题怎么用斋阿。。。。。。不会
第3
var
  a:array[0..1000]of string;
  s:string;
  i,j,k,l,m,n:longint;
procedure over;
begin
  writeln('false');halt;
end;
begin
  readln(s);n:=0;
  for i:=1 to length(s) do
    begin
      case s[i] of
        '{':begin inc(n); s[n]:='{'; end;
        '}':if s[n]<>'{' then over else dec(n);
        '[':begin inc(n); s[n]:='['; end;
        ']':if s[n]<>'[' then over else dec(n);
        '(':begin inc(n); s[n]:='('; end;
        ')':if s[n]<>'(' then over else dec(n);
      end;
    end;
  if n=0 then writeln('true') else over;
end.

3 楼

第二题不就是递归么 用栈的话就是用非递归模拟递归 很简单
第一题…………看不懂 后缀式是什么

我来回复

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