承接做网站,百度提升优化,wordpress 验证百度网盟,上海珍岛做网站怎么样目录
数据结构中公式前中后缀表达式-二叉树应用 数据结构中公式前中后缀表达式-二叉树应用 什么是前缀表达式、中缀表达式、后缀表达式
前缀表达式、中缀表达式、后缀表达式#xff0c;是通过树来存储和计算表达式的三种不同方式
以如下公式为例 通过树来存储该公式#x…目录
数据结构中公式前中后缀表达式-二叉树应用 数据结构中公式前中后缀表达式-二叉树应用 什么是前缀表达式、中缀表达式、后缀表达式
前缀表达式、中缀表达式、后缀表达式是通过树来存储和计算表达式的三种不同方式
以如下公式为例 通过树来存储该公式可以表示为 那么问题就来了树只是一种抽象的数据结构它必须要通过某个形式的文本来才能存储和输入 此时就有了三种表示方法前缀表达式、中缀表达式、后缀表达式
它们分别相当于树的前序遍历、中序遍历、后序遍历前中后指的是遍历时符号的遍历顺序
前序遍历符号 - 左操作数 - 右操作数
中序遍历左操作数 - 符号 - 右操作数
后序遍历左操作数 - 右操作数 - 符号
中缀表达式
上面的公式中序遍历的结果为 显然这种表达方式是有歧义的比如ab是一颗子树cd是一颗子树最后相减遍历结果和上面是一样的
所以中缀表达式必须借助括号才能正确地表达出想要的结果
中缀表达式的表示结果为 这种表达方式符合人类的阅读习惯
前缀表达式
上面的公式先序遍历的结果为 这种表达方式是没有歧义的可以直接作为前缀表达式的结果
这种表达方式符合计算机的处理习惯程序可以很容易地解析这种表达式
具体如何解析下面会给出代码
后缀表达式
上面的公式后序遍历的结果为 这种表达方式也符合计算机的处理习惯解析也很简单
相对于前缀表达式来说后缀表达式的符号读取顺序和人类阅读习惯是一致的
因此实际计算机程序中基本都是用后缀表达式来存储公式的前缀表达式效果次之
对于中缀表达式我们则可以先将其转为后缀表达式再进行求值