前缀中缀后缀表达式

什么是中缀表达式

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

C语言

栈的实际应用2

2024-11-14 17:20:43

C语言

利用栈计算后缀表达式

2024-11-14 18:33:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

Powered by atecplugins.com