永发信息网

将A*-B+C 转化成后缀表达式

答案:2  悬赏:60  手机版
解决时间 2021-03-20 21:06
我想的是 A先输出 ,然后*进栈,遇见-号使*出栈,-号进栈,B输出,+号使-号出栈,+号进栈,c输出,最后+号出栈 。所以结果应该是 A*B-C+
但是结果是AB-*C+ 请问 我错在哪里了。谢谢
最佳答案
A*-B+C → A*(-B)+C → AB-*C+

后缀表达式不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则)。

运用后缀表达式进行计算的具体做法:
  建立一个栈S 。从左到右读后缀表达式,如果读到操作数就将它压入栈S中,如果读到n元运算符(即需要参数个数为n的运算符)则取出由栈顶向下的n项按操作符运算,再将运算的结果代替原栈顶的n项,压入栈S中 。如果后缀表达式未读完,则重复上面过程,最后输出栈顶的数值则为结束。

将中缀表达式转换为后缀表达式的算法思想:
  ·开始扫描;
  ·数字时,加入后缀表达式;
  ·运算符:
  a. 若为 '(',入栈;
  b. 若为 ')',则依次把栈中的的运算符加入后缀表达式中,直到出现'(',从栈中删除'(' ;
  c.剩下的运算符中,【 若其优先级高于其它所有的运算符,直接入栈。否则从栈顶开始,依次弹出比当前处理的运算符优先级高和优先级相等的运算符,直到一个比它优先级低的或者遇到了一个左括号就停止。 】
A*-B+C → A*(-B)+C → AB-*C+
  ·当扫描的中缀表达式结束时,栈中的的所有运算符出栈;
全部回答
表达式a*(b+c)-d是中缀表达式,转化成二叉树后,它是中序遍历的结果 二叉树如下图: ______(-)_________ _____/___\________ ____(*)__(d)______ ____/__\__________ __(a)__(+)________ ______/___\_______ ____(b)___(c)_____ 后缀表达式,就是后序遍历该二叉树,所得到的序列,也就是:abc+*d- 同样的道理,前缀表达式是前序遍历二叉树,所得到的序列,是:-*a+bcd
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
侏儒症是由于幼年时期垂体分泌________不足造
本溪到水洞怎么走
如何将魔兽w3g格式的录像转化成wmv,avi等可
盐城有什么特产比如小吃什么的
我们在承德打工老板是邯郸的,工资现在发不了
胜利车行(文明路)地址在什么地方,想过去办事
谁还买花盆呀,自己在家做,比买的更好看
谁知道、打一场离婚官司要多少钱?
郾城区漯河尚美美容美体(和平路)这个地址在什
哈雷883发动机点着的时候能挂上空档吗
手机怎么开淘宝
无纸记录仪怎么测量电压,电流?互感器吗?怎
一个口加于读什么
什么是开放阅读框
除了调虎离山计还有哪些计策
推荐资讯
空客系列的飞机 引擎启动时候为什么有一种类
单选题支原体和水绵从细胞结构上看,分属于两
索尼电视质量怎么样
K4758次列车能在乌鲁木齐南站上车不
根号20(精确到0.1),求它的大小。
圣经中那一张提到了地狱的钥匙
ahc洗面奶换新包装了吗
高分起名!姓郑!男孩子,谢谢!
马鞍山市金瑞初级中学地址在什么地方,想过去
林森浩死刑复核下来了吗?死刑复核一般多长时
双黄线掉头被无牌无证的摩托车撞了,谁的责任
vivo手机qq怎么截图啊
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?