一文搞懂波兰表达式
![](https://up.ctext.top/article/2024/04/bolan.png)
AI-摘要(由百度千帆大模型提供生成摘要能力)
Tianli GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
一文搞懂波兰表达式
伴随1.什么式波兰表达式
波兰表达式(又称逆波兰表达式 )是一种数学和逻辑表达式的表示方法。在波兰表达式中,操作符放在它们所操作的数之前,而不是在它们之间,这样可以消除括号的需求。波兰表达式通过一种前缀或后缀的方式来表示,分别称为前缀波兰表达式和后缀波兰表达式。
2.为什么会有这种表达式
在计算机中,要本着能简化就简化的原则来设计,对于一个正常的数学运算表达式,除了有加减乘除之外,还有一些括号来标识运算的优先级,那么对于计算机而言,能不能不写括号就能正常运算这个表达式呢,那么波兰表达式就产生了。
3.直接上🌰
下面的表达式就是一个比较简单的例子,我们也叫它中缀表达式
a + b * (c - d) + e/f
有了中缀表达式 ,那肯定也有前缀表达式 和后缀表达式
中缀表达式转换
首先根据中缀表达式构造一个二叉树
+ +
/ \ / \
a + + /
/ \ / \ / \
* / 或者 a * e f
/ \ / \ / \
b - e f b -
/ \ / \
c d c d
所以根据上面的二叉树我们可以知道
前缀表达式 = + a + * b - c d / e f 或 + + a * b - c d / e f
后缀表达式 = a b c d - * e f / + + 或 a b c d - * + e f / +
在计算机中的计算方式
首先将转换后的表达式想象成一个队列,
- 从左往右依次出队,
- 然后进行入栈,当遇到符号时,将前两个操作数取出,进行运算
- 将上一步运算的结果继续入栈
- 直到队列中没有操作数,表达式计算完毕
评论
匿名评论隐私政策