在一个表达式中含有圆括号或方括号等来表示运算的优先级,将这些括号提取出来就构成了括号序列
每一个检测到的括号与已检测到的优先级最高的括号都匹配。
由于栈具有“先进后出”的特点,能很好地表现优先级这个性质,因此可以用栈来存储已经检测到的括号。
匹配失败的条件:
(1)检测到与已检测到的优先级最高的括号不匹配的括号;
(2)扫描完整个表达式,还是有已检测到的括号没有完成匹配;
算法分析
1.初始化一个空栈,顺序读入括号
2.若是右括号则与栈顶元素进行匹配(#若匹配,则弹出栈顶元素并进行下一元素 #若不匹配,则该序列不合法)
3.若是左括号,则压入栈中
4.若全部元素遍历完毕,栈中仍然存在元素,则该序列不合法
过程
总:
代码实现
总结