作者fairwarning (一輪明月與藍夜!!)
看板Grad-ProbAsk
標題[理工] [資結]-將中序式轉成後序式之stack內容之變化
時間Mon Dec 7 09:20:08 2009
【題目】
將中序式 A/(B-C*D)+E-F*G 轉成後序式之過程及stack內容之變化
【SOL】
1. scan【A】,print【A】
2. scan【/】,push【/】to stack
3. scan【(】,push【(】to stack
4. scan【B】,print【B】
5. scan【-】,push【-】to stack
6. scan【C】,print【C】
7. (以下省略..)
【個人錯誤的觀念】
請問..第2點..書上說..因為【/】大於【堆疊的空】,所以【/】PUSH進去..
那請問..第三點..【(】有大於【/】嗎?
因為遊戲規則不是說..
【(】在stack內priority最低,【(】在stack外priority最高
那請問為何第3點【(】大於【/】,導致【(】PUSH進去呢?
而第5點,因為【-】大於【(】,所以導致【-】PUSH進去,
還煩請大家幫幫我更正我這個錯誤的觀念..
在此先謝謝大家熱心的幫忙..感謝..
--
吉他演奏曲
http://blog.xuite.net/iloveguitar/music?st=c&re=list&p=1&w=641095
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.120.229
1F:推 polomoss:"(" 在堆疊外最大的意思,就是除了資料外,都要push到堆 12/07 10:11
2F:→ polomoss:疊中,然後push進去堆疊變成最小,所以後續的符號"-"也會 12/07 10:12
3F:→ polomoss:push進去,直到碰到")" 12/07 10:12
4F:→ fairwarning:謝謝 很詳細 ^^ 12/07 11:38