中缀表达式
平常我们看到的算术题,比如( 3 + 4)x 5 - 6
前缀表达式(运算符位于操作数之前)
从右到左扫描表达式,遇数字压入栈,遇运算符弹出栈顶的两个数进行相应运算后结果压入数栈,重复上述直到最后结果。
例如:- x + 3 4 5 6
- 6、5、4、3压入堆栈
2)遇到 + ,弹出3、4,计算得7压入数栈,此时数栈为6、5、7
3)遇到 x ,弹出7、5,计算得35压入数栈,此时数栈为6、35
4)遇到 - ,弹出35、6,计算35-6得29压入数栈,此时数栈为29(前弹出的-后弹出的)
后缀表达式(运算符位于操作数之后)
从左到右扫描表达式,遇数字压入栈,遇运算符弹出栈顶的两个数进行相应运算后结果压入数栈,重复上述直到最后结果。
例如:3 4 + 5 x 6 -
- 3、4压入堆栈
2)遇到 + ,弹出4、3,计算得7压入数栈,此时数栈为7
3)遇到 5 压入数栈,此时数栈为7、5
4)遇到 x ,弹出5、7,计算得35压入数栈,此时数栈为35
5)遇到 6 压入数栈,此时数栈为35、7
4)遇到 - ,弹出35、6,计算35-6得29压入数栈,此时数栈为29(后弹出的-前弹出的)