[數據結構考前必看]中綴表達式轉化成後綴表達式_例題超多+分步驟講解+帶你手算

中綴、後綴表達式定義

  1. 中綴表達式又稱波蘭式,有利於人們閱讀與表達。
  2. 後綴表達式又稱逆波蘭式,有利於機器進行運算。

例題1:

中綴表達式:(a+b+c*d) /e

  1. 首先讓我們來看一下運算符對應的優先級,顯然括號裏的**“乘法”**的優先級最高,所以先得出cd*,讓我們把cd*記爲q,括號裏的表達式即可轉化成a+b+q。
  2. 然後括號裏還剩下兩個加法,兩者的優先級相同,依次讀取,a+b首先轉化成ab+,接着ab+作爲一個新的數,讓我們把它記爲p,那麼括號裏的表達式就剩下p+q,轉化成後綴表達式,顯然是pq+,讓我們把它記爲r。
  3. 然後表達式就變成了r/e,轉化成後綴表達式,顯然是re/,好了,此刻我們已經處理完全部表達式了。
  4. 此時表達式爲re/,讓我們依次將表達式還原,r=pq+、p=ab+、q=cd*,將這些帶入,得原表達式=ab+cd*+e/,

OK!得解。

這時候,就會有小朋友提問了,哥哥,哥哥,我算的結果怎麼和你不一樣,我是不是算錯了,你看我的結果是abcd*++e/。
好的,首先恭喜你,你學會解這道題目,你的結果也是對的。
我們需要明確一個非常重要的概念中綴轉後綴的結果並不唯一
後綴表達式只是一種工具,我們寄希望於計算機通過這種工具能正確計算出表達式。

計算機處理後綴表達式的方式是:

從左向右依次掃描表達式,
(1)遇到操作數人棧,
(2)遇到操作符.則做出棧兩次,獲得兩個操作數,
後出棧的操作數爲第一個操作對象,對它們進行計算,
計算結果作爲下次運算的操作數入棧。
重複上述操作,直到後綴表達式讀取結束,既可完成表達式的計算。

表達式1:abcd*++e/和表達式2:ab+cd*+e/,兩者計算結果是相同的。所以他倆是等價的。


接下來的例題我就不一一書寫步驟了,僅提供參考答案(再次提醒答案不唯一)


例題2:

中綴表達式 a+b*(c-d)-e/f
對應轉化的後綴表達式 abcd-*+ef/-


例題3:

中綴表達式 A+B*(C-D)-E/F
對應轉化的後綴表達式 ABCD-*+EF/-


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章