1. 程式人生 > >中綴、字首、字尾表示式相互相互轉換與求值

中綴、字首、字尾表示式相互相互轉換與求值

轉載至:https://www.cnblogs.com/nzbbody/p/3335226.html

表示式轉化(中綴,字尾,字首)

1、為什麼要把中綴表示式轉化為字尾,字首?

計算機沒法計算帶有括號,以及區分優先順序的表示式,或者說很難計算。使用字尾,字首,消除了括號和優先順序。

2、中綴如何計算字尾,字首表示式?

計算字尾:從左到右遍歷字尾表示式,遇到運算元,放進棧,遇到操作符,棧頂兩個數出棧,進行運算,運算結果放進棧,直到讀完字尾表示式。

計算字首:從左到右遍歷字首表示式,遇到操作符,放進棧,遇到運算元,檢視棧頂,棧頂為操作符,放進棧,棧頂為運算元,取出棧頂運算元和操作符,進行運算,運算後繼續判斷棧頂的情況。

3、中綴表示式如何轉化為字尾,字首表示式?

轉化為字尾:從左到右遍歷中綴表示式,遇到運算元,輸出,遇到操作符,棧頂操作符優先順序小於等於當前操作符的優先順序,進棧,否則,彈出棧頂優先順序大於等於當前操作符的操作符,當前操作符進棧。

轉化為字首:從右到左遍歷中綴表示式,遇到運算元,輸出,遇到操作符,棧頂操作符優先順序小於當前操作符的優先順序,進棧,否則,彈出棧頂優先順序大於當前操作符的操作符,當前操作符進棧