手工转换中缀式与前、后缀式

之所以要手工推导,当然是为了考试。额。

编程实现请自行搜索,有的。下述内容因为我没搜到,所以写下来,一则备忘,二则也帮助准备考试的童鞋节约点时间。

闲言少叙,且听正文:

【1】求值:

1.1 中缀式求值:(不用说了吧,你懂的)

1.2 前、后缀式求值:程序求的话,当然是设栈,可是“栈”这玩意是计算机的思维模式,咱们人类要在脑子里维护个栈,那个智商要求是比较高的,以本人比较低的智商来说是相当的困难。所以,曲线救国:把前、后缀式转换成中缀式,中缀式求值参照上面一条。

【2】转换

  因为通过心算或画图模拟栈的运算都不是很方便,所以总结下述方法。

1.1 后缀式(前缀式)转中缀式 

举例:如希望将后缀式  ab*cde/-f*+  转换为中缀式

        

        从左向右查找运算符,找到则将该符号与前面两数结合,循环即可。

1.2 中缀式转后缀式(前缀式)

举例:请将中缀式  a * ( b *(c+d/e) - f)  转换为后缀式

      

      

      首先按照运算符的优先级对所有的运算单位加括号,然后,画图将括号内符号移动到相应括号后并去除括号。BTW,这个画法没见别人用过,属于原创范畴,如有雷同,纯属偶然。另外,如果您只有一支黑色铅笔,可以考虑小括号、方括号花括号齐上阵。

至此,软考这类题目的分应该可以拿下了。

原文地址:https://www.cnblogs.com/hsxixi/p/2224869.html