利用棧計算字尾表示式

2021-09-21 07:12:55 字數 522 閱讀 3634

字尾表示式又稱作逆波蘭式,操作符在運算數的後面,所以叫做字尾表示式。例如 1 + 2 * 3的字尾表示式是 1 2 3 * + 。可以 2 3 *看作乙個運算數a, 1 a * 也符合運算數 運算數 操作符的格式。

**的特殊處理:

因為要處理大於9的數,所以要在每個數和操作符後加上空格,將相鄰的數分隔開。

字尾表示式以字串的形式存在,所以要將字元形式的數字轉化為數值型別。

我只處理了加減乘除四則運算,只能使用正整數。

#include

#include

intcalpostfix

(char expre)

s.push

(num);}

else

s.push

(num)

; i ++;}

}return s.

top();

}int

main()

計算表示式值(字尾表示式) 棧

處理表示式主要是對優先順序以及括號的判斷 1.運算子棧頂的優先順序小於加入的時,需要將所有的不評級的取出並計算,2.當遇到 時,需要括號內的運算全部處理 2.其他情況全部加入運算子棧和資料棧 include include include using namespace std typedef lo...

棧(字尾表示式的計算)

就我個人來說,字尾表示式看起來很彆扭,但是從變成來看,字尾表示式的處理比中綴表示式的處理方便很多。中綴表示式 30 4 x 5 6 164 字尾表示式 30 4 5 x 6 164 對於中綴表示式而言,一般需要兩個棧 數棧和符號棧,並且處理過程中需要注意括號運算。就上面的中綴表示式來看,先計算括號裡...

利用棧實現中綴表示式轉字尾表示式

中綴表示法 或中綴記法 是乙個通用的算術或邏輯公式表示方法,操作符是以中綴形式處於運算元的中間 例 3 4 與字首表示式 例 3 4 或字尾表示式 例 3 4 相比,中綴表示式不容易被電腦解析,但仍被許多程式語言使用,因為它符合人們的普遍用法。逆波蘭表示法 reverse polish notati...