#define Maxisize 10
typedef struct{
char data[Maxsize];
int top;
}SqStack;
void InitStack(SqStack &S)
bool StackEmpty(SqStack S)
bool Push(SqStack &S,char x)
bool Pop(SqStack &s,char &X)
bool bracketCheck(char str[],int length){
SqStack S;
InitStack(S);
for(int i=0;i<length;i++){
if(str[i]=='('||str[i]=='['||str[i]=='{'){
Push(S,str[i]); //扫描到左括号,入栈
}
else{
if(StackEmpty(S)) //扫描到右括号,且当前栈空
return false;
char topElem;
Pop(S,topElem); //栈顶元素出栈
if(str[i]==')'&& topElem!='(')
return false;
if(str[i]==']'&& topElem!='[')
return false;
if(str[i]=='}'&& topElem!='{')
return false;
}
}
return StackEmpty(S); //检索完所有括号后,栈空说明匹配成功
}