校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 >
题目

已知-算术表达式的中缀表达式为a-(b+c/d)*e,其后缀形式为()

A.-a+b*c/d

B.-a+b*cd/e

C.-+*abc/de

D.abcd/+e*-

解答

正确答案是 D

后缀表达式不包含括号,运算符 放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则)
先是c/d写为cd/,(b+c/d)写为bcd/+,(b+c/d)*e写为bcd/+e*,a- ( b+c/d)*e写为abcd/+e*-。
故答案选D
C 4条回复 评论
清歌

这问题真不好答

发表于 2022-05-15 21:00:00
0 0
花将离

按优先级依次把连个数间的符号移到最后:
1、优先级最高为(b+c/d)*e (把(b+c/d)看为一个数): a-(b+c/d)e*
2、最高级又为c/d:a-(b+cd/)e*
3、最高级为括号内容(b+cd/),忽略括号:a-bcd/+e*

4、最后剩下-号:abcd/+e*-

注意优先级

发表于 2018-10-13 14:46:16
0 0
冬季恋歌

这个非常简单,该中缀表达式首先可以看成两次子项,第二个子项前的运算符为-,所以后缀表示法的结尾肯定是“-”。 结论:后缀表示法的结尾肯定是中缀表示法最后一个子项前的运算符。 在下屡试不爽,如有不当之处,望相告  

发表于 2018-10-13 14:46:08
0 0
小小小可乐

这里我给出一个中缀表达式:a+b*c-(d+e)
第一步:按照运算符的优先级对所有的运算单位加括号:式子变成了:((a+(b*c))-(d+e))
第二步:转换前缀与后缀表达式
前缀:把运算符号移动到对应的括号前面
则变成了:-( +(a *(bc)) +(de))
把括号去掉:-+a*bc+de 前缀式子出现
后缀:把运算符号移动到对应的括号后面
则变成了:((a(bc)* )+ (de)+ )-
把括号去掉:abc*+de+- 后缀式子出现

发表于 2018-10-13 14:45:58
0 0