後綴式

後綴式

後綴式即逆波蘭式,是波蘭邏輯學家盧卡西維奇(Lukasiewicz)發明的一種表示表達式的方法。

這種表示方式把運算符寫在運算對象的後面,例如,把a+b寫成ab+,所以也稱為後綴式。這種表示法的優點是根據運算對象和算符的出現次序進行計算,不需要使用括弧,也便於用械實現求值。對於表達式x:=(a+b)*(c+d),其後綴式為xab+cd+*:=。
原表達式:a*(b*(c+d/e)-f)# /* # 為表達式結束符號*/
後綴式:abcde/+*f-*#
為運算符定義優先權:# ( + - * / **
-1 0 1 1 2 2 3
從原表達式求後綴式的規則為:
1.設定運算符棧
2.假設表達式的結束符為"#",我們需要預設運算符棧底元素為"#"
3.掃描表達式,若當前字元是運算元,則直接傳送給後綴表達式;
4.若當前字元為運算符且優先權大於棧頂運算符,則進棧,否則退出棧頂運算符並將其傳送給後綴式。然後將當前運算符放入棧中。
5.若當前字元是結束符,則將棧中的全部運算符依次傳送給後綴式。
6.若當前字元為"(",進棧。
7.若當前字元為")",則從棧頂起,依次將棧中運算符出棧傳送給ie後綴式,直到碰到"("。將棧中"("出棧,不需要傳送給後綴式。然後繼續掃描表達式。

相關詞條

熱門詞條

聯絡我們