手记

数据结构探险-栈篇:括号匹配问题--一个栈实现

include <iostream>
include "stack.h"

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;

}

1人推荐
随时随地看视频
慕课网APP

热门评论

这里所有的temp,除了带temp++的,其他都是*temp,不知道为什么上传上去都不带*,希望大家注意一下

查看全部评论