之所以要手工推导,当然是为了考试。额。
编程实现请自行搜索,有的。下述内容因为我没搜到,所以写下来,一则备忘,二则也帮助准备考试的童鞋节约点时间。
闲言少叙,且听正文:
【1】求值:
1.1 中缀式求值:(不用说了吧,你懂的)
1.2 前、后缀式求值:程序求的话,当然是设栈,可是“栈”这玩意是计算机的思维模式,咱们人类要在脑子里维护个栈,那个智商要求是比较高的,以本人比较低的智商来说是相当的困难。所以,曲线救国:把前、后缀式转换成中缀式,中缀式求值参照上面一条。
【2】转换
因为通过心算或画图模拟栈的运算都不是很方便,所以总结下述方法。
1.1 后缀式(前缀式)转中缀式
举例:如希望将后缀式 ab*cde/-f*+ 转换为中缀式
从左向右查找运算符,找到则将该符号与前面两数结合,循环即可。
1.2 中缀式转后缀式(前缀式)
举例:请将中缀式 a * ( b *(c+d/e) - f) 转换为后缀式
首先按照运算符的优先级对所有的运算单位加括号,然后,画图将括号内符号移动到相应括号后并去除括号。BTW,这个画法没见别人用过,属于原创范畴,如有雷同,纯属偶然。另外,如果您只有一支黑色铅笔,可以考虑小括号、方括号花括号齐上阵。
至此,软考这类题目的分应该可以拿下了。