[問題] 中序轉後序
從文字檔裡面讀取一個中序算式 (假設此算式一定對,無需檢查)
用scan的方式將其數字以及運算元還有括號分開依原本的順序放入陣列
(雖然名稱是堆疊)
之後在依照網路上的方法用Stack 依照其priority pop() 或 push()
可是問題是執行的時候
總是會少最後一個運算元
如果每處理一個數字或括號或運算元然後印出PostFix 跟 Stack 裡的內容時
又會出現很奇怪的現象:起初兩個物件近來的時候,堆疊 top 會加一,
可是印出其PostFix 和 Stack的內容卻是空格
等到處理第三個物件的時候又會突然從其中之一跳出
不知道為什麼
最後
如果算式是以括號作結尾
譬如 2+3*4+(3+2*3)
或是 2+3*4+(3+2)
就會正確印出後序
可是如果是沒有括號
那麼最後一個運算元( +,-,*,/)
會不見
debug 好久
希望有空的鄉民能幫小弟看看
感謝
<(_._)>
這是程式碼
http://nopaste.csie.org/f3c7b
--
肝不好 ▁▁ ● ◤ 肝若好
人生是黑白的 ▏ ◤ 考卷是空白的
▏ ◤ 、 ﹐
● ●b 囧 ▎ ●> ● ◤ ▌ ﹍﹍ 0 ▊囧> 幹...
▲ ■┘ ■ ▎ ■ █◤ ▌ ㄏ▋ ︶■
〈﹀ ∥ ▁▁∥ ▎ ﹀〉◤ ▋ ▊ 〈\ ψcockroach727
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.58.39
推
12/07 22:14, , 1F
12/07 22:14, 1F
→
12/07 22:33, , 2F
12/07 22:33, 2F
→
12/07 22:34, , 3F
12/07 22:34, 3F
推
12/07 23:18, , 4F
12/07 23:18, 4F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章