#include
#include"SqStack.h"
using namespace std;
int A(int n){
SqStack
char s2[80];
cout<<"输入表达式:";
for(int i=0;i
for( i=0;i
case '(': ;
case '[': ;
case '{': s1.Push(s2[i]); break;
case ')': if(s1.StackEmpty( ) || s1.GetTop( ) != '(') return 0;
s1.Pop( ); break;
case ']': if(s1.StackEmpty( ) || s1.GetTop( ) != '[') return 0;
s1.Pop( ); break;
case '}': if(s1.StackEmpty( ) || s1.GetTop( ) != '{') return 0;
s1.Pop( ); break;
} //end switch
} //end for
return s1.StackEmpty( );
} // end A
每次在做取栈顶元素或出栈操作之前最好先判断栈是否为空。用1+(2+3))测试你的程序,遇到第二个')'时,此时栈已经是空栈,但你的程序此时还执行s1.GetTop( )操作,这时可能访问栈越界了。