首页 > 其他 > 详细

利用栈将中缀表达式转化成后缀表达式

时间:2014-03-10 17:24:28      阅读:566      评论:0      收藏:0      [点我收藏+]

目的:将中缀表达式(即标准形式的表达式)转换为后缀式。

例子:a+b*c+(d*e+f)*g转换成abc*+de*f+g*+

 

转换原则

1. 遇到操作数, 直接输出

2. 操作符的优先级为 () 最大, * / 次之, +- 最小. 遇到操作符后, 假如操作符堆栈为空, 则直接压入操作符, 否则判断当前操作符与栈顶操作符的优先关系, 假如栈顶操作符的优先级大于 等于当前操作符的优先级, 那么弹出栈顶操作符, 持续弹出, 直到栈顶操作符优先级小于当前操作符优先级或栈为空. 最后将当前操作符入栈

3. 如果遇到右括号, 那么将栈顶操作符弹出, 持续弹出直到遇到左括号, 左括号弹出但不输出

4. 表达式读入完毕, 若栈不为空, 则持续弹出栈顶操作符, 直到栈为空

 

题目

1. 九度题目1019:简单计算器

2. 九度题目1101:计算表达式

3. 九度题目1498:寻找表达式

利用栈将中缀表达式转化成后缀表达式,布布扣,bubuko.com

利用栈将中缀表达式转化成后缀表达式

原文:http://www.cnblogs.com/xinsheng/p/3591781.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!