要將中序(Infix)表示式 A∗(B+C)−D/EA*(B + C) - D / EA∗(B+C)−D/E 轉換為後序(Postfix)表示式和前序(Prefix)表示式,我們可以依次應用中序轉換為後序和前序的規則。
後序(Postfix)表示式
後序表示式的規則是:對於任意運算,先處理操作數,再處理運算符。
- 原表達式:A∗(B+C)−D/EA*(B + C) - D / EA∗(B+C)−D/E
- 按運算優先級和括號處理:
- (B+C)(B + C)(B+C) 轉換為 BC+BC+BC+
- A∗(BC+)A * (BC+)A∗(BC+) 轉換為 ABC+∗ABC+*ABC+∗
- D/ED / ED/E 轉換為 DE/DE/DE/
- 最後處理減法 ABC+∗−DE/ABC+* - DE/ABC+∗−DE/
因此,後序表示式為:
前序(Prefix)表示式
前序表示式的規則是:對於任意運算,先處理運算符,再處理操作數。
- 原表達式:A∗(B+C)−D/EA*(B + C) - D / EA∗(B+C)−D/E
- 按運算優先級和括號處理:
- (B+C)(B + C)(B+C) 轉換為 +BC+BC+BC
- A∗(+BC)A * (+BC)A∗(+BC) 轉換為 ∗A+BC*A+BC∗A+BC
- D/ED / ED/E 轉換為 /DE/DE/DE
- 最後處理減法 ∗A+BC−/DE*A+BC - /DE∗A+BC−/DE
因此,前序表示式為:
總結
- 後序(Postfix)表示式: ABC+*DE/-
- 前序(Prefix)表示式: -*A+BC/DE