中綴表示式轉成字尾表示式的簡單求值(Java實現)

2021-09-12 15:04:46 字數 750 閱讀 5069

從左到右掃瞄算術表示式,將遇到的運算元直接存放到字尾表示式中,將遇到的每乙個運算子或者左括號都暫時儲存到運算子棧,而且先執行的運算子先出棧。

·數字時,加入字尾表示式;

·運算子:

a. 若為最高端的運算子,入棧;

b. 若為 『(』,入棧;

c. 若為 『)』,則依次把棧中的的運算子加入字尾表示式中,直到出現』(』,從棧中刪除』(』 ;

d. 若為不是最高端的運算子,則將從棧頂到第乙個優先順序不大於(小於,低於或等於)它的運算子(或 『(』,但優先滿足前乙個條件)之間的運算子加入字尾表示式中,該運算子再入棧;

----- 改編自李春葆的資料結構教程第5版。

public static void trans(string s, stringbuilder postexp) 

break;

}}

while(!mystack.isempty())

}

public static double compvalue(stringbuilder postexp) 

mystack.push(d); //將數值d進棧

break;

}} e = (double) mystack.gettop();

return e;

}

public static void main(string args)

中綴表示式 字尾表示式

中綴表示式就是 a b 這樣的,運算子在兩個數的中間 字尾表示式就是 a b 這樣的,運算子在兩個數後面 再細分一下 中綴表示式 字尾表示式 a b c a b c a b c a b c a b c a b c a b c a b c a b c d e a c a b c d e a c emm...

中綴表示式 字尾表示式

數學表示式稱為中綴表示式,符合人的思考習慣 1 2 3運算子放在數字後面,符合計算機運算 123 遍歷中綴表示式中的數字和符號 左括號 入棧 運算符號 需要與棧頂符號進行優先順序比較 遍歷結束 將棧中所有符號彈出並輸出。例 中綴表示式 1 2 5 3 4 2 1 1 數字1直接輸出 結果 1 棧 空...

中綴表示式 字尾表示式

表示式 x a b c d e 的字尾表示形式可以為 c a xab cde b xa bc de c xabcd e d xabcde 表示式前字尾表達形式 乙個中綴式到其他式子的轉換方法 這裡我給出乙個中綴表示式 a b c d e 第一步 按照運算子的優先順序對所有的運算單位加括號 式子變成拉...