OJ 中綴表示式求值

2022-09-20 08:45:09 字數 1227 閱讀 7623

字尾表示式複習:

題目內容:

通過把「中綴轉字尾」和「字尾求值」兩個演算法功能整合在一起(非簡單的順序呼叫),

實現對中綴表示式直接求值,新演算法還是從左到右掃瞄中綴表示式,

但同時使用兩個棧,乙個暫存操作符,乙個暫存運算元,來進行求值。

(支援 + - * / ^ 五種運算)

輸入格式:

共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 5

using

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...