后缀表达式--栈的实例

解析

答案为C,

思路如下:

X=A+B*(C-D)/E

1)扫描X为数字,进行输出 X

2)扫描=为操作符,进栈,栈中元素为:=

3)扫描A为数字,进行输出A,输出的元素为X,A 栈中元素为:=

4)扫描+为操作符,由于+>=(栈顶)进栈,栈中元素为:+,=

5)扫描B为数字,进行输出B,输出的元素为X,A,B 栈中元素为:=

6) 扫描*为操作符,由于 *>+(栈顶) 进栈,栈中元素为:*,+,=

7)扫描(为操作符,进栈,栈中元素为:(, *,+,=

8)扫描C为数字,进行输出C,输出的元素为X,A,B,C   栈中元素为:(, *,+,=

9) 扫描-为操作符,进栈,栈中元素为:-,(, *,+,=

10)扫描D为数字,进行输出D,输出的元素为X,A,B,C,D   栈中元素为:-(, *,+,=

11)扫描)为操作符,进行弹出操作,直到遇见(为止,输出元素为:- ,总的 输出元素为X,A,B,C,D,- ,栈中元素为: *,+,=

12) 扫描/为操作符,此时栈顶元素为*,由于*,/优先级相同,依次弹出直到遇见比/优先级低的为止,然后/进栈 输出元素为:*, 总的输出为: 输出的元素为X,A,B,C,-,*  栈中元素为:/ ,+,=

13) 扫描E为数字,进行输出E,输出的元素E,总的输出元素为 X,A,B,C,D,-,*,E   栈中元素为: / ,+,=

14)到此扫描结束,依次弹出栈中剩余的元素,输出的的元素为 / ,+,=, 总的输出元素为 X,A,B,C,D,-,*,E, / ,+,=

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值