#前缀表达式(波兰表达式)
- 前缀表达式又称为波兰式,前缀表达式的运算符位于操作数之前
- 举例:(3+4)*5-6对应的波兰式是-*+3456
前缀表达式的计算求值
- 从右到左扫描表达式,将数字压入堆栈
- 遇到运算符时,弹出栈顶的两个数,进行运算
- 注意顺序为:栈顶元素 -操作符->次顶元素
- 并将结果入栈;重复上述过程直到表达式最右端
- 最后运算得出的值即为最终结果
例如 (3+4)*5-6
- 对应的波兰式是-*+3456
- 从右向左扫描得6 5 4 3 ,入栈
- 遇到+,弹出3 4 得7,7入栈
- 遇到* ,弹出7 5 得35,35入栈
- 遇到- ,弹出35 6 得29,29即为最终结果
#中缀表达式
- 就是常见的运算表达式
- 人最熟悉中缀表达式,但计算机最难处理中缀表达式,所以往往将中缀表达式改为后缀表达式
- 例如(3+4)*5-6就是一个中缀表达式
#后缀表达式(逆波兰表达式)
- 与前缀表达式类似,只是运算符位于操作数之后
- 例如(3+4)*5-6的逆波兰表达式是34+5*6-
- 还有很多例子
后缀表达式的计算求值
- 从左往右扫描表达式,遇到数字时,将数字压入堆栈
- 遇到运算符时,弹出栈顶的两个数,计算
- 注意顺序:次顶元素 -处理->栈顶元素
- 并将结果入栈,重复上述过程直到表达式最右端
- 最后结果即为计算结果