推 ric2k1:這是什麼...我好像沒教過吧...不過歡迎討論 11/24 00:19
※ 引述《tmd39 (good luck)》之銘言:
: 我搞不懂中置運算式如何變成後置運算式 有人知嗎 可以教教我嗎
: 題目是
: a+b/(c-d)*e-f
: 我真的不懂用堆疊的方法
: 有人可以再更詳細的解釋一下嗎 謝謝
簡單的例子是
中置: a+b
後置: ab+
然後 + - * / ^ () 的位階順序又不同
a + b/(c-d)*e - f
可以看成是三個數的 + - (a, f, t=b/(c-d)*e)
所以以後置的寫法可以寫成 atf-+ (寫成 at+f- 也可)
然後 t = b/(c-d)*e 可以把 (c-d) 視為 z
所以 t = b/z*e 後置型態為 bze*/ 或是 bz/e*
因此整合起來 a + b/(c-d)*e - f 的後置變成 abze*/f-+
用堆疊的寫法....ㄜ,我在網咖時間不夠了 @@" 之後再補
個人覺得由後置變成中置比較簡單
應該是說用 stack 吧?
提示是讀到了 +-*/ 之類的運算符號,應該怎麼作呢?
stack 裡面放的都放數字進去吧
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.142.1
※ 編輯: SingForYou 來自: 59.120.142.1 (11/24 00:12)