從左到右掃瞄算術表示式,將遇到的運算元直接存放到字尾表示式中,將遇到的每乙個運算子或者左括號都暫時儲存到運算子棧,而且先執行的運算子先出棧。
·數字時,加入字尾表示式;
·運算子:
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 第一步 按照運算子的優先順序對所有的運算單位加括號 式子變成拉...