bracketCheck

#include 
#include
#define MaxSize 10typedef struct {char data[MaxSize];int top;
}SqStack;void InitStack(SqStack& S) {S.top = -1;  //也可以是S.top=0
}bool StackEmpty(SqStack& S) {if (S.top == -1)return true;
}bool Push(SqStack& S, char x) {if (S.top == MaxSize - 1)return false;S.top = S.top + 1; //++S.top先加在使用  S.top++ 先使用再加S.data[S.top] = x;return true;
}bool Pop(SqStack& S, char& x) {	if (S.top == -1)return false;x = S.data[S.top--];return true;
}bool brackerCheck(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);
} 

 

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部