算术表达式a+b*(c+d/e )转为后缀表达式是?具体分析下!谢谢!! 20

 我来答
蘑菇西餐2
2019-09-03 · TA获得超过1.1万个赞
知道答主
回答量:64
采纳率:0%
帮助的人:1.8万
展开全部

转化后的后缀表达式为:abcde/+*+

具体分析:

1、初始化一空栈,用来对符号进出栈使用。

2、第一个字符是a,输出,后面是符号“+”,进栈。输出的为a。

3、第三个字符是b,输出,后面是符号“*”,进栈。输出的为ab。

4、 第五个字符是“(”,依然是符号,因其只是左括号,还未配对,故进栈。输出的为ab。

5、第六个字符是c,输出,后面是符号“+”,进栈。输出的为abc。

6、第八个字符是d,输出,后面是符号“/”,进栈。输出的为abcd。

7、后面是字符e,输出,之后是“)”配对完成。进栈输出的为abcde。

8、栈顶元素“(”出栈,“/”出栈,“+”出栈,“(”出栈,括号配对完成。

9、之后也是依次出栈,最后结果为:abcde/+*+。

扩展资料:

后缀表达式进行计算的通用做法:

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

后缀表达式:也叫逆波兰表示法(Reverse Polish notation,RPN,或逆波兰记法),是一种是由波兰数学家扬·武卡谢维奇1920年引入的数学表达式方式,在逆波兰记法中,所有操作符置于操作数的后面,因此也被称为后缀表示法。逆波兰记法不需要括号来标识操作符的优先级

实际意义:

1、当有操作符时就计算,因此,表达式并不是从右至左整体计算而是每次由中心向外计算一部分,这样在复杂运算中就很少导致操作符错误。

2、堆栈自动记录中间结果,这就是为什么逆波兰计算器能容易对任意复杂的表达式求值。与普通科学计算器不同,它对表达式的复杂性没有限制。

3、逆波兰表达式中不需要括号,用户只需按照表达式顺序求值,让堆栈自动记录中间结果;同样的,也不需要指定操作符的优先级。

4、逆波兰计算器中,没有“等号”键用于开始计算。

5、逆波兰计算器需要“确认”键用于区分两个相邻的操作数。

6、机器状态永远是一个堆栈状态,堆栈里是需要运算的操作数,栈内不会有操作符。

7、教育意义上,逆波兰计算器的使用者必须懂得要计算的表达式的含义。

参考资料来源:百度百科-后缀表达式

莫道無情
2019-07-08 · TA获得超过1.5万个赞
知道答主
回答量:317
采纳率:100%
帮助的人:8.7万
展开全部

转为后缀表达式是abcde/+*+ 

a+b*(c+d/e)   (a+(b*(c+(d/e))))

按照运算符的优先级对所有的运算单位加括号,式子变成了:(a+(b*(c+(d/e)))),然后转换后缀表达式。

后缀:把运算符号移动到对应的括号后面,则变成了:(a(b(c(de)/)+)*)+

把括号去掉后的式子则为后缀表达式: abcde/+*+ 

扩展资料:

将中缀表达式转换为后缀表达式的算法思想:

1、开始扫描;

2、数字时,加入后缀表达式;

3、运算符:

a、若为 '(',入栈;

b、 若为 ')',则依次把栈中的运算符加入后缀表达式中,直到出现'(',从栈中删除'(' ;

c.、若为 除括号外的其他运算符, 当其优先级高于除'('以外的栈顶运算符时,直接入栈。否则从栈顶开始,依次弹出比当前处理的运算符优先级高和优先级相等的运算符,直到一个比它优先级低的或者遇到了一个左括号为止,然后将其自身压入栈中(先出后入)。

4、当扫描的中缀表达式结束时,栈中的的所有运算符出栈;

参考资料:百度百科-后缀表达式

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
59分粑粑分享生活
高粉答主

2020-01-02 · 专注生活好物分享,解答日常方方面面的问题
59分粑粑分享生活
采纳数:326 获赞数:119834

向TA提问 私信TA
展开全部

转为后缀表达式是“abcde/+*+ ”。

a+b*(c+d/e)   (a+(b*(c+(d/e))))

通过根据运算符的优先级将所有算术单元括起来,该表达式变为:(a+(b*(c+(d/e)))),然后转换后缀表达式。

后缀:将操作符号移到相应的括号之后,然后变为:(a(b(c(de)/)+)*)+

除去括号后的表达式是后缀表达式:abcde/+*+

扩展资料:

后缀表达式进行计算的通用做法:

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

后缀表达式:也叫逆波兰表示法(Reverse Polish notation,RPN,或逆波兰记法),是一种是由波兰数学家扬·武卡谢维奇1920年引入的数学表达式方式,在逆波兰记法中,所有操作符置于操作数的后面,因此也被称为后缀表示法。逆波兰记法不需要括号来标识操作符的优先级。

参考资料来源:

百度百科-后缀表达式

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tseug8271
推荐于2017-11-24 · TA获得超过1498个赞
知道小有建树答主
回答量:745
采纳率:100%
帮助的人:366万
展开全部
a+b*(c+d/e)
(a+(b*(c+(d/e)))) 按计算顺序加上括号
(a(b(c(de)/)+)*)+ 把运算符放到括号外面
abcde/+*+ 去掉括号
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wang247039305
2015-05-19 · TA获得超过190个赞
知道小有建树答主
回答量:256
采纳率:100%
帮助的人:106万
展开全部
abcde/+*+
脑算,没用编程实现!
后缀表达式是从左到右算。
我给你说说我的技巧吧,也许你就学会了。
1。先写好顺序 abcde
2。然后按运算顺序符号 abcde/ abcde/+ abcde/+* abcde/+*+
OK解决。
心得技巧:这是按符号算,从第一个符号的左边俩个数开始算。每个符号都是算符号左边的两个数!
sorry.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式