sicily 字尾表示式計算

2021-06-20 01:59:01 字數 370 閱讀 7527

wa了無數次心都碎了,一直改到3點多才交上的= =感覺思想很簡單,使用了乙個棧。依次遍歷字串,若為字幕的話,則將其push到棧中,若為運算符號,則將棧頂元素與下乙個元素進行運算,然後將運算的結果push進去棧中。。依次執行這些操作即可。

**如下:

#include#include#include#includeusing namespace std;

int main()

else if (s[i] ==45)

else if (s[i] == 42)

else if (s[i] ==47) }}

cout <}

return 0;

}

SICILY 中綴表示式轉字尾表示式 無括號

將乙個中綴表示式轉為乙個字尾表示式。主要思想是遍歷整個字串陣列,遇到字母直接輸出,遇到運算子則放入乙個棧中,若棧中已有元素,則再次遍歷到運算子時應該將當前運算子與棧頂元素比較,若棧頂元素優先順序高,則將棧頂元素輸出並pop掉,使當前元素繼續與新的棧頂元素進行比較。特別需要注意的是 若當前元素與棧頂元...

字尾表示式計算

演算法 1.遍歷字尾表示式中的數字和符號 對於數字 進棧 對於符號 從棧中彈出右運算元 從棧中彈出左運算元 根據符號進行運算 將運算結果壓入棧中 2.遍歷結束 棧中的唯一數字為計算結果 include include linkstack.h int isnumber char c int isope...

字尾表示式計算

將中綴表示式轉換為字尾表示式 與轉換為字首表示式相似,遵循以下步驟 1 初始化兩個棧 運算子棧s1和儲存中間結果的棧s2 2 從左至右掃瞄中綴表示式 3 遇到運算元時,將其壓入s2 4 遇到運算子時,比較其與s1棧頂運算子的優先順序 4 1 如果s1為空,或棧頂運算子為左括號 則直接將此運算子入棧 ...