什么是中缀表达式
<操作数><操作符><操作数> 就像我们平时用到的大部分计算表达式都是中缀 比如 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 实现利用栈对后缀表达式进行计算。