中綴表示式與前 字尾表示式轉化簡單的技巧

2021-09-26 01:23:06 字數 918 閱讀 9509

35,15,+,80,70,-,*,20,/                      //字尾表達方式  

(((35+15)*(80-70))/20)=25 //中綴表達方式

/,*,+,35,15,-,80,70, 20 //字首表達方式

人的思維方式很容易固定~~!正如習慣拉10進製。就對2,3,4,8,16等進製不知所措一樣~~!

人們習慣的運算方式是中綴表示式。而碰到字首,字尾方式。。迷茫其實僅僅是一種表示式子的方式而已(不被你習慣的方式)

我這裡教你一種也許你老師都沒跟你講的簡單轉換方式

乙個中綴式到其他式子的轉換方法

這裡我給出乙個中綴表示式:

a+b*c-(d+e)    //中綴表示式
第一步:按照運算子的優先順序對所有的運算單位加括號

式子變成:((a+(b*c))-(d+e))

第二步:轉換字首與字尾表示式

字首:把運算符號移動到對應的括號前面

則變成:-( +(a *(bc)) +(de))

把括號去掉:-+a*bc+de字首式子出現

字尾:把運算符號移動到對應的括號後面

則變成:((a(bc)* )+ (de)+ )-

把括號去掉:abc*+de+-字尾式子出現

發現沒有,字首式,字尾式是不需要用括號來進行優先順序的確定的。

如果你習慣了他的運算方法。計算的時候也就是從兩個運算元的前面者後面找運算子。而不是中間找,那麼也就直接可以口算拉。

中綴表示式轉化為字尾表示式

注意 中綴表示式需要空格隔開運算元或者操作符 關鍵有 判斷是否操作符,操作符優先順序 public class profixexpression 計算排好的字尾操作計算式 param prostr return public static intprofixcalculate string pros...

中綴表示式轉化為字尾表示式

中綴表示式轉化為字尾表示式有兩種方法,一種是利用棧,一種是把表示式轉化為樹再進一步求解,今天我們來深入了解一下這兩種方法 給出下面乙個例子 我們把中綴表示式 9 3 1 3 10 2 轉化為字尾表示式 1.首先初始化乙個空棧,用來對符號進出棧使用 2.第乙個字元是數字9,輸出9,將後面的符號 進棧 ...

中綴表示式轉化為字尾表示式

中綴表示式轉化為字尾表示式 例如 1 2 3 4 7 5 123 4 75 1 遇到數字輸出,否則進棧。2 遇到有右括號匹配棧裡的左括號,輸出棧裡的內容 3 遇到比自己比棧裡的運算子優先順序高,入棧 4 遇到比自己比棧裡的運算子優先順序低,將棧裡的運算子出棧 include include incl...