基礎演算法與資料結構(二)字首、中綴、字尾表示式
阿新 • • 發佈:2018-12-01
目錄
簡介
中綴表示式(正常的表示式)
\[ (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入棧 |