#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); //检索完所有括号后,栈空说明匹配成功 }
原文:https://www.cnblogs.com/ikigai18/p/12820054.html