栈的应用
栈在括号匹配中的应用
只包含括号的表达式({【】})是否对称匹配
算法基本原理
- 从头开始扫描表达式
- 遇到左括号
【,(,{
入栈 - 遇到右括号则弹出括号进行匹配,不匹配则配对失败
- 遇到左括号
- 重复操作,直到扫描完整个表达式
- 如果最后栈不空则匹配失败
栈在后缀表达式中的应用
后缀表达式是指两个操作数A和B在前,运输符+ - * / 在后,例如AB+表示A+B
中缀表达式转后缀表达式
基本思路
- 遍历中缀表达式
- 遇到操作数,加入后缀表达式
- 遇到运算符,如果栈中存在比其优先级大或相等的运算符则将运算符弹出,直到遇到(结束,该元素加入后缀表达式;如果栈中运算符优先级均小于当前运算符,则当前运算符入栈
- 遇到
(
则入栈,遇到)
则弹出栈中元素加入后缀表达式,直到遇到(
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 xiao's blog!