目錄
一、中綴表示式計算機求值演算法介紹
二、中綴表示式計算機求值**實現
1.通過乙個
index
值(索引),來遍歷我們的表示式
2. 如果我們
發現是乙個數字,就直接入數棧
3. 如果發現
掃瞄到是乙個符號,
就分如下情況
3.1
如果發現當前的符號棧為 空,就直接入棧
3.2
如果符號棧有操作符,就進行比較,如
果當前的操作符的優先順序小於或者等於棧中的操作符, 就需要從數棧中
pop出兩個數
,在從符號棧中
pop出乙個符號,進行運算,將得到結果,入數棧,然後將當前的操作符入符號棧,
如果當前的操作符的優先順序大於棧中的操作符, 就直接入符號棧.
4.當表示式掃瞄完畢,就順序的從 數棧和符號棧中pop出相應的數和符號,並執行.
5.最後在數棧只有乙個數字,就是表示式的結果
public class calculator
// 當取出的運算子的優先順序小於等於運算子棧中運算子的優先順序
else if(operstack.priority(ch)<=operstack.priority((char)operstack.getstacktop()))else
}else
}system.out.println("——————----————運算子棧————————————————");
operstack.showstack();
system.out.println("—----—----——————數棧———————------—————");
numstack.showstack();
while (!operstack.isempty())
system.out.println("表示式的結果為:"+numstack.pop());
}}
鹹魚學資料結構與演算法 中綴表示式轉字首表示式
目錄 一 中綴表示式轉字首表示式演算法介紹 二 中綴表示式轉字首表示式 實現 1 初始化兩個棧 運算子棧s1和儲存中間結果的棧s2 2 從右至左掃瞄中綴表示式 3 遇到運算元時,將其壓入s2 4 遇到運算子時,比較其與s1棧頂運算子的優先順序 4 1 如果s1為空,或棧頂運算子為右括號 則直接將此運...
鹹魚學資料結構和演算法 字尾表示式計算機求值
目錄 一 字尾表示式計算機求值演算法介紹 二 字尾表示式計算機求值 實現 從左至右掃瞄表示式,遇到數字時,將數字壓入堆疊,遇到運算子時,彈出棧頂的兩個數,用運算子對它們做相應的計算 次頂元素 和 棧頂元素 並將結果入棧 重複上述過程直到表示式最右端,最後運算得出的值即為表示式的結果 例如 3 4 5...
資料結構 中綴表示式轉字尾表示式
話不多說上例子 1 2 3 4 5 1 2 3 4 5 中綴表示式轉字尾表示式思路分析 1.首先需要兩個棧運算子棧 s1和儲存中間結果的棧 s2 2.從左至右掃瞄中綴表示式 2.1當前為運算元,將其壓棧至s2 2.2當前為運算子 2.2.1如果s1為空或者棧頂運算子為左括號 則將此運算子直接入s1棧...