什么是中缀表达式
<操作数><操作符><操作数> 就像我们平时用到的大部分计算表达式都是中缀 比如 1+1 3*2 等等
中缀表达式虽然很方便人使用,但是对机器却不太友好 比如我要计算(1+1)*3+2
机器将怎样区分操作符的优先级,机器不是人,机器是很傻的,所以我们要提供一种新的算法,让机器无脑就可以算。
这时候就要引出 后缀表达式
后缀表达式
又称逆波兰表达式,与前缀表达式相似,只是运算符位于操作数之后。这个意思不是把所有运算符放到数字后面,比如我们举个例子,(3+4)×5-6
有括号的肯定要先算括号里面的所以我们先括号 再乘 最后再减 转换后缀表达式的结果是34+5*6-
为什么说机器好算呢!因为是后缀所以从左往右看,遇到符号我们就把前面的操作数根据这个操作符计算,34+就是7 那么现在表达式是75*6-
75* 就是35 最后35-6= 29 从左往右遇到操作符就算,是不是很无脑,你也不用管优先级什么的,因为中缀转后缀时候,就已经考虑到优先级了。现在只是简单的介绍一下。
前缀表达式
也叫波兰表达式,这个就不需要解释什么了,跟后缀是一个道理,区别是我们要把操作符根据优先级往前提,计算的时候通过表达式从右往左扫描,遇到运算符就计算。
下一章会介绍如何用C++实现利用栈对后缀表达式进行计算。
网站标题:CV鼻祖洋芋
原创文章,作者:locus,如若转载,请注明出处:https://blog.cvpotato.cn/forward-code/c-2/161/
本博客所发布的内容,部分为原创文章,转载注明来源,网络转载文章如有侵权请联系站长!