首页 新闻 会员 周边 捐助

JAVA问题

0
[已解决问题] 解决于 2017-04-25 14:36

在控制台输入二元表达式( a > b),并计算结果,运算符包括:+ - * / % > < != <= >=。示例:
请输入表达式
5 + 4
5 + 4 = 9

能和我说一下思路吗??

丨纸鸢丨的主页 丨纸鸢丨 | 初学一级 | 园豆:58
提问于:2017-04-16 15:37
< >
分享
最佳答案
0

后缀表达式就是将操作符放在操作数的后面展示的方式,例如:3+2 后缀表达式为32+,3*(2+1)的后缀表达式为:321+*,解决表达式求值首先需要根据字符串表达式求出后缀表达式,然后使用后缀表达式和操作数栈实现计算,计算的大致思想是从后缀表达式中取元素,如果元素是数值则加入到操作数栈中,如果是运算符则从操作数栈中取两个数来参与运算。后缀表达式的获取要借助于两个栈,一个是后缀表达式栈,一个是操作符栈,顺序扫描算术表达式,如果是数值则直接加入后缀表达式栈,如果是运算符则使用当前运算符和运算符栈中的栈顶元素做比较,如果当前运算符的优先级高则当前元素进入操作符栈,如果当前元素优先级低,则操作符栈顶元素出栈加入到后缀表达式栈中,一直到当前元素优先级高于操作符栈顶元素优先级则当前元素入操作符栈,目前只支持加减乘除和带小括号的运算。

可参考这篇博客http://www.cnblogs.com/gmq/archive/2013/05/30/3108849.html

奖励园豆:5
狼爷 | 小虾三级 |园豆:1204 | 2017-04-16 15:42

谢谢!!

丨纸鸢丨 | 园豆:58 (初学一级) | 2017-04-25 14:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册