括号匹配检验还可以用栈来解决,参见我的另一篇文章
《栈的应用之括号匹配检验》
这里给出一个C++程序,结合注释来看是如何实现的。
#include <iostream>
using namespace std;
bool judge(char* str);//括号检验主体函数
bool match(char *,char,int &);//递归调用的匹配检验函数
//判断是否为左、右括号,是否为一对括号
bool isLeft(char);
bool isRight(char);
bool isPair(char,char);
int main()
{
char str[30];
cin>>str;
cout<<(judge(str)? "Succeeded":"Failed")<<endl;
return 0;
}
bool isLeft(char c)
{
if(c=='(' || c=='[' || c=='{')
return true;
else return false;
}
bool isRight(char c)
{
if(c==')' || c==']' || c=='}')
return true;
else return false;
}
//括号匹配检验主体函数
bool judge(char * str)
{
bool tag = true;
int i