1.括号匹配
算法思路:从第一个字符扫描遇到普通字符忽略,遇到左符号压入栈中,继续扫描,遇到右符号时从栈中弹出进行匹配,匹配成功,消除栈中那个左符号的元素。继续扫描ing
成功:空栈
失败:非空栈
2.中缀表达式(人类的思考)和后缀表达式(计算机的计算)
中缀转化后缀的思想:
遍历中缀表达式中的数字和字符:
a.如果为数字 直接输出
b.若为符号 1. 左括号进栈
2.运算符 与栈顶进行比较若栈顶符号优先级低则进展(默认左括号最低)若栈顶符号不 低,则弹出
3 右括号:将栈顶的元素弹出知道匹配左括号
如8+(3-1)*5 ------》 8 3 1 - 5 *
如何基于后缀表达式进行计算
831-5*+
对于数字直接进栈
对于符号
从栈中弹出右操作数
从栈中弹出左操作数
将计算结果压栈
知道栈中剩下的结果为最后的计算数值
网友评论