栈的应用——括号匹配
括号匹配:只注重于算术表达式中的()匹配
伪代码:
算法:Match(str)
输入:以字符串str存储的算术表达式
输出:匹配结果,0表示匹配正确,1表示多左括号,-1表示多右括号
1.栈S初始化;
2.循环变量i从0开始依次读取str[i],找到字符串str结束:
2.1如果str[i]等于’(’,则将压入栈,
2.2如果str[i]等于’)’,且栈S非空,则弹出一个’(‘与’)‘匹配;如果栈S为空,则多右括号’)’,输出-1;
3.循环结束后,如果栈S为空,则左右括号匹配,输出0,否则多出左括号’(’,输出1;
#include<iostream>
#include<string>
using namespace std;
const int MatchSize = 10;
class Matcher
{
public:
Matcher(string str);
~Matcher()