從左到右掃瞄,將數字壓入堆疊;
遇到運算子,依次彈出數字棧中的棧頂元素和次棧頂元素,計算出來的值,再次入棧;
依次迴圈掃瞄字尾表示式重複1,2規則,棧中唯一的數字就是字尾表示式的計算結果;
這裡主要注意下第二條,計算時 棧頂元素和次棧頂元素 在符號運算時的先後順序
將次棧頂元素放在 運算符號的 左邊
棧頂元素放在運算符號的右邊計算,才能得到正確的結果
例如: 3 4 + 5 * 6 -
首先將這個字串解析為乙個陣列 並且區分 數字的多位數
然後建立乙個棧,將數字依次入棧,遇到符號時將棧中的數字彈出計算後再次入棧,迴圈往復將陣列中的元素遍歷完後即可完成計算
計算器(表示式計算 字尾表示式實現)逆波蘭表示式
問題描述 從標準輸入中讀入乙個整數算術運算表示式,如24 1 2 36 6 2 2 12 2 2 計算表示式結果,並輸出。要求 1 表示式運算子只有 表示式末尾的 字元表示表示式輸入結束,表示式中可能會出現空格 2 表示式中會出現圓括號,括號可能巢狀,不會出現錯誤的表示式 3 出現除號 時,以整數相...
計算器 逆波蘭表示式
1.實現原理 說明 在我原來做的逆波蘭計算器中,postfix是用來表示逆波蘭表示式的。但是和buptpatriot討論後,想直接實現,下面是直接實現的方法 首先,定義優先順序 function level op 之後,掃瞄輸入序列,讀取輸入的字串,把其中的數字 可能是浮點型,負數 和操作符提取出來...
逆波蘭計算器 中綴表示式轉字尾表示式
1 2 3 4 5 2 這就叫中綴表示式,也就是說運算子在兩個運算元中間,這比較符合我們人類正常的計算題書寫規則與習慣.一目了然有木有 1,2,3依次進棧,此時棧內依次為1 2 3 遇到 2 3出棧計算得到5,5再進棧,此時棧內依次為1 5 4進棧,此時棧內依次為1 5 4 遇到 4 5 出棧計算得...