using namespace std;
int main(int argc, char argv[])
{
char p[] = "[[]()[]]]";
MyStack<char> sch(10);
char temp = p;
char ch1 = 0,ch2 = 0;
while(temp)
{
ch1 = temp;
if(!sch.stackEmpty())
{
sch.pop(ch2);//取出栈顶元素
if((ch2 == '(' && ch1 == ')') (ch2 == '[' && ch1 == ']')
ch2 == '{' && ch1 == '}')
{//如果取出的括号,与下一个括号匹配,则丢弃取出的括号
temp++;
continue;
}
sch.push(ch2);//如果不匹配,则放回栈里
}
sch.push(ch1);
temp++;
}
if(sch.stackEmpty())
cout << "括号匹配" << endl;
else
cout << "括号不匹配" << endl;
return 0;
}
热门评论
这里所有的temp,除了带temp++的,其他都是*temp,不知道为什么上传上去都不带*,希望大家注意一下