data-structures - 堆栈和算术评估
问题描述
堆栈被认为是算术评估的理想数据结构。为什么会这样?
为什么我们甚至需要一个用于算术评估的数据结构?我已经研究了一段时间,但仍然感到困惑。我不明白前缀和后缀表达式的用途是什么,因为中缀表达式的可读性很强。
解决方案
关于为什么后缀/前缀而不是中缀的部分答案在这里得到了很好的解释。作为摘要中缀可读但不容易解析
至于为什么在这里使用堆栈是:
1:在O(1)时间内推送,弹出非常有用进行评估。
2:push:将操作数加到栈上。
3:pop:删除操作数并计算表达式(二进制) 4:最终结果是解析后唯一留在堆栈上的结果
推荐阅读
- python - 如何解释模型预测结果?
- javascript - 简单的条件 IF 不能正常工作(属性未定义错误)
- swift - 为什么 swift Combine 中的 .collect() 运算符总是发送 .unlimited 需求,而不管上游发布者的需求如何?
- python - 我可以将恢复行为作为插件添加到 ROS FlexBE 吗?
- json - 如何在 Apache Beam 中解析 2 个 json 文件
- sql - 用计数更新表
- flutter - 如何将渐变色应用到网页上的 Flutter Icon?
- java - JavaFX NoClassDefFoundError zap 插件浏览器视图
- angular - 如何在 formGroup 中从 typescript 传递自定义字符串,并在模板内的 *ngFor 中读取它的值?
- nsattributedstring - nsattributedstring 添加左字母间距