目錄
一、字尾表示式計算機求值演算法介紹
二、字尾表示式計算機求值**實現
從左至右掃瞄表示式,遇到數字時,將數字壓入堆疊,遇到運算子時,彈出棧頂的兩個數,用運算子對它們做相應的計算(次頂元素 和棧頂元素),並將結果入棧;重複上述過程直到表示式最右端,最後運算得出的值即為表示式的結果
例如:(3+4)×5-6 對應的
字尾表示式就是
3 4 + 5 × 6 -,針對後綴表示式求值步驟如下:
1)從左至右掃瞄,將3和
4壓入堆疊;
2)遇到+
運算子,因此彈出4和
3(4為棧頂元素,
3為次頂元
素),計算出
3+4的值,得
7,再將7入棧
; 3)將5入棧
; 4)接
下來是×
運算子,因此彈出5和
7,計算出
7×5=35
,將35入棧;
5)將6入棧
; 最後是
-運算子,計算出
35-6
的值,即
29,由此得出最終結
果
//從左向右掃瞄
public class suffixcalculator
public static void suffixcalculate(string suffixexperssion,stacknumstack) else }}
public static boolean isnum(string str)else
}public static int calculate(int num1,int num2,string opr)
return res;
}}
鹹魚學資料結構與演算法 中綴表示式轉字首表示式
目錄 一 中綴表示式轉字首表示式演算法介紹 二 中綴表示式轉字首表示式 實現 1 初始化兩個棧 運算子棧s1和儲存中間結果的棧s2 2 從右至左掃瞄中綴表示式 3 遇到運算元時,將其壓入s2 4 遇到運算子時,比較其與s1棧頂運算子的優先順序 4 1 如果s1為空,或棧頂運算子為右括號 則直接將此運...
鹹魚學資料結構和演算法 中綴表示式計算機求值
目錄 一 中綴表示式計算機求值演算法介紹 二 中綴表示式計算機求值 實現 1.通過乙個 index 值 索引 來遍歷我們的表示式 2.如果我們 發現是乙個數字,就直接入數棧 3.如果發現 掃瞄到是乙個符號,就分如下情況 3.1 如果發現當前的符號棧為 空,就直接入棧 3.2 如果符號棧有操作符,就進...
資料結構 中綴表示式轉字尾表示式
話不多說上例子 1 2 3 4 5 1 2 3 4 5 中綴表示式轉字尾表示式思路分析 1.首先需要兩個棧運算子棧 s1和儲存中間結果的棧 s2 2.從左至右掃瞄中綴表示式 2.1當前為運算元,將其壓棧至s2 2.2當前為運算子 2.2.1如果s1為空或者棧頂運算子為左括號 則將此運算子直接入s1棧...