[請益] 中序與後序式中的負號與減號處理問題?
想請問大大們
對於『中序表示法』與『後序表示法』中的負號『-』
(假設非得使用減號字元 ascii: 0x2d 表示的話),
進行中序對後序式的轉換後,再使用堆疊進行後序式計算求值。
原中序式:
2*(-18/3)
我自己查到的例子五花八門 (輸出皆用空白字元分隔每一項):
第 1 種 (負號不移位):
2*(-18/3) ==> 2 -18 3 / * ==> -18 除以 3 先做 ==> 最後結果得 -12
第 2 種 (負號移位):
2*(-18/3) ==> 2 18 - 3 / * ==> * 號會少了一個運算元
(分不出來 - 號到底是 "負號" 還是 "減號")
第 3 種 (預先處理補零):
2*(-18/3) ==> 2*((0-18)/3) ==> 2 0 18 - 3 / *
==> 0 減去 18 先做 ==> 最後結果得 -12
小弟想請教,考慮輸入是有可能錯誤的,需要指出錯誤與不合法之處,那麼:
1、哪一種後序在學理上才是正確的轉法?
2、如果都不是,怎樣做才是正確的呢?
--
精密才是美,複雜不是罪!
這是將事物的描述給自己最鉅細靡遺的交代!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.195.20
※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1541407214.A.BA6.html
推
11/06 11:59,
6年前
, 1F
11/06 11:59, 1F
→
11/06 11:59,
6年前
, 2F
11/06 11:59, 2F
→
11/07 18:21,
6年前
, 3F
11/07 18:21, 3F
→
11/07 18:22,
6年前
, 4F
11/07 18:22, 4F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章