棧 表示式求值

2021-10-25 19:22:04 字數 436 閱讀 6839

把運算的處理專門放在乙個函式裡,然後通過優先順序的判斷去呼叫函式,注意那個』('還是放在else if裡面吧,不要和運算混在一起了

#includeusing namespace std;

const int n=1e5+10;

stacks1;

stacks2;

int flag=0;

//處理+-*/四個

mapcmp=, , ,

};void eval()

if(flag) s1.push(0);//隨意進乙個數

else s1.push(x);

}int main()

} //清理低優先順序

while(s2.size()) eval();

if(flag) cout<<"illegal"《如果除數是0 的話,直接return 0 吧

表示式求值(棧)

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 acm隊的mdd想做乙個計算器,但是,他要做的不僅僅是一計算乙個a b的計算器,他想實現隨便輸入乙個表示式都能求出它的值的計算器,現在請你幫助他來實現這個計算器吧。比如輸入 1 2 4 程式就輸出1.50 結果保留兩位小數 輸入...

棧 表示式求值

核心演算法思想 1.運用兩個棧,乙個存運算子,乙個存數值 2.以 做為標誌位,開頭或者結尾 3.檢查當前字元,若當前字元為數值,則加入數值棧,若為運算子,則檢驗當前運算子的優先順序,1 若當前運算子優先順序大於棧頂優先順序,則把該運算子壓入棧 2 若當前運算子優先順序等於棧頂優先順序 括號的情況 則...

棧應用 表示式求值

include stdafx.h include using namespace std const int explenght 20 const int stack init size 20 const int stack incrment 10 templateclass stack stack...