作者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