前缀、中缀、后缀表达式
简介
中缀表达式(正常的表达式)
\[(1+2)*3-4
\]
前缀表达式(运算符位于操作数之前)
\[-*+1234
\]
后缀表达式(运算符位于操作数之后)
\[12+3*4-
\]
前缀表达式计算
从右向左遍历,遇到数字的时候,将数字入栈,遇到运算符的时候,弹出栈顶两个数字运算,将运算结果入栈,直到剩下最后一个数字。
| 遍历元素 | 栈 | 备注 |
|---|---|---|
| 4 | 4 | 4入栈 |
| 3 | 43 | 3入栈 |
| 2 | 432 | 2入栈 |
| 1 | 4321 | 1入栈 |
| + | 433 | 12出栈,作1+2=3入栈 |
| * | 49 | 33出栈,作3*3=9入栈 |
| - | 5 | 49出栈,作9-4=5入栈 |
后缀表达式计算
从左向右遍历,遇到数字的时候,将数字入栈,遇到运算符的时候,弹出栈顶两个数字运算,将运算结果入栈,直到剩下最后一个数字。
| 遍历元素 | 栈 | 备注 |
|---|---|---|
| 1 | 1 | 1入栈 |
| 2 | 12 | 2入栈 |
| + | 3 | 12出栈,作1+2=3入栈 |
| 3 | 33 | 3入栈 |
| * | 9 | 33出栈,作3*3=9入栈 |
| 4 | 94 | 4入栈 |
| - | 5 | 94出栈,作9-4=5入栈 |

浙公网安备 33010602011771号