乙個中綴式到其他式子的轉換方法:
這裡我給出乙個中綴表示式a+b*c-(d+e)
第一步:按照運算子的優先順序對所有的運算單位加括號,式子變成:((a+(b*c))-(d+e))
第二步:轉換字首與字尾表示式
字首:把運算符號移動到對應的括號前面
則變成:-( +(a *(bc)) +(de)),把括號去掉:-+a*bc+de 字首式子出現
字尾:把運算符號移動到對應的括號後面
則變成拉:((a(bc)* )- (de)+ )-,把括號去掉:abc*+de+- 字尾式子出現
發現沒有,字首式,字尾式是不需要用括號來進行優先順序的確定的。
如果你習慣了他的運算方法,計算的時候也就是從兩個運算元的前面
或者後面找運算子。而不是中間找,那麼也就直接可以口算了。
原文:
中綴轉字尾表示式
中綴轉字尾 進棧元素 進棧規則 若棧頂元素比目前元素的優先順序大或者相等,出棧 若棧頂元素與當前元素優先順序小,入棧 若當前元素為 入棧 若當前元素為 出棧頂元素直到遇到 位置,並且 不表達 遇到運算元直接表達 include include include define n 10 void fun...
中綴表示式轉前字尾表示式的手工求法
無論是面試還是考研,資料結構中都會出現一類題型,就是已知中綴表示式求其字首表示式或者字尾表示式。這類題型多遇見幾個,多做幾個掌握以下方法,就沒問題了。先說乙個比較簡單的,個人還是比較傾向於這種的二叉樹表示法 表示式a b 左子樹為表示式a,右子樹為表示式b,可以先求左子樹所表示的表示式的值,再求右子...
中綴表示式轉字尾表示式
using system using system.collections.generic using system.text namespace 中綴表示式轉字尾表示式 class convert public void run top break case case while top 1 st...