【轉】中綴表達式轉換成前綴表達式和後綴表達式

原文來源:http://blog.csdn.net/glldc/archive/2007/10/10/1818787.aspx

/**********************此爲轉載內容***********************************

35,15,+,80,70,-,*,20,/               //後綴表達方式

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

/,*,+,35,15,-,80,70, 20             //前綴表達方式

人的思維方式很容易固定~~!正如習慣拉10進制。就對234816
等進制不知所措一樣~~

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

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

 

一箇中綴式到其他式子的轉換方法

這裏我給出一箇中綴表達式

a+b*c-(d+e)

第一步:按照運算符的優先級對所有的運算單位加括號

           式子變成拉:((a+(b*c))-(d+e))
第二步:轉換前綴與後綴表達式
        
前綴:把運算符號移動到對應的括號前面
               
則變成拉:-( +(a *(bc)) +(de))
                
把括號去掉:-+a*bc+de  前綴式子出現
        
後綴:把運算符號移動到對應的括號後面
                
則變成拉:((a(bc)* )- (de)+ )-
                
把括號去掉:abc*-de+-  後綴式子出現
發現沒有,前綴式,後綴式是不需要用括號來進行優先級的確定的。

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

**********************此爲轉載內容***********************************/

有個小錯誤:

後綴:把運算符號移動到對應的括號後面
         
則變成拉:((a(bc)* )- (de)+ )-改成((a(bc)* )+ (de)+ )-
         
把括號去掉:abc*-de+-  後綴式子出現改成:abc*+de+-  

 

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