字尾表示式複習:
題目內容:
通過把「中綴轉字尾」和「字尾求值」兩個演算法功能整合在一起(非簡單的順序呼叫),
實現對中綴表示式直接求值,新演算法還是從左到右掃瞄中綴表示式,
但同時使用兩個棧,乙個暫存操作符,乙個暫存運算元,來進行求值。
(支援 + - * / ^ 五種運算)
輸入格式:
共1行,為1個字串,即乙個中綴表示式,
其中每個數字或符號間由乙個空格隔開。
輸出格式:
共1行,為乙個整數,即求值的結果。
輸入樣例:
( 2 + 3 ) * 6 + 4 / 2
輸出樣例:
注意:1.連線字元數字
2.pow(int,int)在dev上可以通過,但正確格式是pow(int,double)
1 #include 2 #include 3 #include 4 #include 5using
namespace
std;
6void pop1(stack &x, queue &y)11}
12void pop2(stack &x, queue &y)17}
18void pop3(stack &x, queue &y)
23x.pop();24}
25void pop4(stack &x, queue &y)30}
31int
main()
46if (a == '\0'
)47break;48
if ('0'
<= a && a <= '9'
)55switch
(a)64 sign = 0;65
}66while (!my_symbol.empty())
70while (!my_suffix.empty())
77 b =my_cal.top();
78my_cal.pop();
79 c =my_cal.top();
80my_cal.pop();
81switch
(a)101
}102 cout << my_cal.top() <103return0;
104 }
中綴表示式求值
中綴表示式用於計算乙個表示式,比如計算器 就是這樣實現的 這兒是用棧的資料結構來實現的。首先輸入乙個字串,表示乙個表示式,然後用乙個棧儲存數字,另外乙個棧儲存符號 如果當前運算子優先順序比棧頂元素優先順序高,則入棧,若當前運算子優先順序小於等於棧頂運算子優先順序,則從數字棧中彈出兩個元素,從符號棧中...
中綴表示式求值
表示式求值都需要2個棧。乙個是符號棧,另乙個是數字棧。拿上面的字尾式45 來說,咱們剛才將表示式從4 5轉換到45 的過程是咱們一眼就能看出來的,但是計算機不能像咱們這樣做,因為他不會。他只會從表示式的開頭,順序掃瞄表示式的每乙個字元,它不能像咱們一樣 一眼就 看 出來。計算機是如何轉換的呢?1.從...
中綴表示式求值
計算 calc.cpp 問題描述 小明在你的幫助下,破密了ferrari設的密碼門,正要往前走,突然又出現了乙個密碼門,門上有乙個算式,其中只有 0 9 求出的值就是密碼。小明數學學得不好,還需你幫他的忙。用整數除法 輸入 輸入檔案calc.in共1行,為乙個算式。輸出 輸出檔案calc.out共1...