1.将9 + (3 - 1) * 3 + 10 / 2变为后缀表达式
9 + (3 - 1) * 3 + 10 / 2
先括号里面的
9 + 31- * 3 + 10/2
再乘除
9 + 31-3* + 10 2/
再从左到右加
9 31-3* + + 10 2/
再加
9 3 1 -3 *+ 10 2/+
2.二个+的
9+ 6 +5
96++5
96+5+
3. 9+ 6+5的出入栈方式
后缀表达式:9 6 + 5 +
-
遇到
9
,将其压入栈。- 栈:[9]
-
遇到
6
,将其压入栈。- 栈:[9, 6]
-
遇到
+
,弹出栈顶的两个元素9
和6
,计算9 + 6 = 15
,然后将结果压入栈。- 栈:[15]
-
遇到
5
,将其压入栈。- 栈:[15, 5]
-
遇到
+
,弹出栈顶的两个元素15
和5
,计算15 + 5 = 20
,然后将结果压入栈。- 栈:[20]
最后栈中只剩下 20
,这就是表达式的计算结果。
4. 9+6*5的
按照从左到右的顺序遍历表达式:
读取 9
(数字)
- 压入栈中。
- 栈状态:
[9]
读取 6
(数字)
- 压入栈中。
- 栈状态:
[9, 6]
读取 5
(数字)
- 压入栈中。
- 栈状态:
[9, 6, 5]
读取 *
(乘号)
- 取出 栈顶两个数字(
6
和5
)。 - 计算
6 * 5 = 30
。 - 把
30
压入栈。 - 栈状态:
[9, 30]
读取 +
(加号)
- 取出 栈顶两个数字(
9
和30
)。 - 计算
9 + 30 = 39
。 - 把
39
压入栈。 - 栈状态:
[39]