中綴式轉換為字尾式(逆波蘭式)方法

2021-06-16 07:53:55 字數 329 閱讀 6721

對於用低階程式語言是實現對表示式的處理,字尾式(逆波蘭式)最為簡便。下面是將中綴式(常見表示式)轉換為字尾式的演算法:

棧底放『#』,從左至右逐字讀取中綴式:

a.當當前字元為數字時,直接輸出;

b.當當前字元為"("時,將其壓棧;

c.當當前字元為")"時,則彈出堆疊中最上的"("之前的所有運算子並輸出,然後刪除堆疊中的"(" ;

d.當當前字元為運算子時,則依次彈出堆疊中優先順序大於等於當前運算子的,輸出,再將當前運算子壓棧;

e.當為"#"時,彈出所有棧中的內容輸出

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

字尾式:abc+*d/e+

字尾式 逆波蘭式

逆波蘭式 是波蘭邏輯學家盧卡西維奇 lukasiewicz 發明的一種表示 表示式的方法。這種表示方式把運算子寫在運算物件的後面,例如,把a b寫成ab 所以也稱為字尾式。這種表示法的優點是根據運算物件和算符的出現次序進行計算,不需要使用括號,也便於用械實現求值。對於 表示式x a b c d 其字...

字首 波蘭式 中綴 字尾表示式 逆波蘭式

中綴表示式 中綴表示式就是常見的運算表示式,如 3 4 5 6 字尾表示式 字尾表示式又稱逆波蘭表示式,與字首表示式相似,只是運算子位於運算元之後 比如 3 4 5 6 與字首表示式類似,只是順序是從左至右 從左至右掃瞄表示式,遇到數字時,將數字壓入堆疊,遇到運算子時,彈出棧頂的兩個數,用運算子對它...

中綴式轉換為逆波蘭表示式

搗騰了一天,總算有個雛形了,先發上來吧,已知的bug 1.直接輸入回車會溢位,2.表示式不完整會溢位,3.多餘的 會造成未知的結果,但是如果是在式子的最後是沒有問題的,4.中文的字元會報錯。目前已知的就這麼多了吧 下面上 include include include struct stack ty...