表達式:主要由操作數、操作符組成。
中綴表達式:操作符在兩個操作數之間的表達式
如:a/(b-c)+d*e
前綴表達式:操作符放在兩個操作數之前的表達式 從後往前求值
如:+/a-bc*de
後綴表達式:操作符放在兩個操作數之後的表達式(逆波蘭表達式)從前往後求值
如:abc-/de*+
非中綴表達式的求值過程,一定要看明白是前綴還是後綴。具體的過程始終都是先找到操作符,然後反向去找最近的操作數,進行合併求值。
後綴表達式中無括號,求值時無需考慮操作符的優先級,計算簡便,故編譯程序中常用。對中綴表達式求值的過程爲:
(1)中綴表達式->後綴表達式
(2)對後綴表達式求值
後綴表達式求值:
(1)從左往右順序掃描後綴表達式;
(2)遇到操作數就進棧;
(3)遇到操作符就從棧中彈出兩個操作數,並執行該操作符規定的運算;並將結果進棧;
(4)重複上述操作,直到表達式結束。彈出棧頂元素即爲結果。