注册 登录
编程论坛 数据结构与算法

关于括号匹配的算法,试了挺多答案,不知道错在哪里

wu3097857312 发布于 2012-09-09 08:30, 390 次点击
这是我学校Oj上的,现在登录不了,所以请大家直接看我这段检验的函数,错在哪里?还少考虑什么吗。
  int check()
 {
  listack *s;
 char ch[80],*p,e;  int j=0;
 initstack(s);
  getchar();
 gets(ch);  
 int i=strlen(ch);
 
while(j<i )
{
switch(ch[j])
 {
 case '(':
 case '[':
 case '{':{push(s,ch[j]); j++;}
 break;
 case ')':
 case ']':
 case '}':
     if(!stackempty(s))
 {
e=pop(s);
if(!(e=='('&& ch[j]==')'||e=='['&& ch[j]==']'||e=='{'&& ch[j]=='}'))
 {
    return 0;
 }
 }
 else
     return 0;
 default: j++;
 }
}
if(stackempty(s))
return 1;
 else
 return 0;
 }
1 回复
#2
寒风中的细雨2012-09-09 09:03
出栈的时候 需要和栈顶元素进行比较 匹配上了 才进出栈操作
1