1、為什么要把中綴表達式轉化為后綴,前綴?
計算機沒法計算帶有括號,以及區分優先級的表達式,或者說很難計算。使用后綴,前綴,消除了括號和優先級。
2、計算機如何計算后綴,前綴表達式?
計算后綴:從左到右遍歷后綴表達式,遇到操作數,放進棧,遇到操作符,棧頂兩個數出棧,進行運算,運算結果放進棧,直到讀完后綴表達式。
計算前綴:從左到右遍歷前綴表達式,遇到操作符,放進棧,遇到操作數,查看棧頂,棧頂為操作符,放進棧,棧頂為操作數,取出棧頂操作數和操作符,進行運算,運算后繼續判斷棧頂的情況。
3、中綴表達式如何轉化為后綴,前綴表達式?
轉化為后綴:從左到右遍歷中綴表達式,遇到操作數,輸出,遇到操作符,當前操作符的優先級大於棧頂操作符優先級,進棧,否則,彈出棧頂優先級大於等於當前操作符的操作符,當前操作符進棧。
轉化為前綴:從右到左遍歷中綴表達式,遇到操作數,輸出,遇到操作符,當前操作符的優先級大於等於棧頂操作符優先級,進棧,否則,彈出棧頂優先級大於當前操作符的操作符,當前操作符進棧。