数据结构中公式前中后缀表达式-二叉树应用

简介: 数据结构中公式前中后缀表达式-二叉树应用

数据结构中公式前中后缀表达式-二叉树应用


什么是前缀表达式、中缀表达式、后缀表达式


前缀表达式、中缀表达式、后缀表达式,是通过树来存储和计算表达式的三种不同方式

以如下公式为例

image.png

通过树来存储该公式,可以表示为

image.png

那么问题就来了,树只是一种抽象的数据结构,它必须要通过某个形式的文本来才能存储和输入

 

此时,就有了三种表示方法:前缀表达式、中缀表达式、后缀表达式


它们分别相当于树的前序遍历、中序遍历、后序遍历,前中后指的是遍历时符号的遍历顺序


前序遍历:符号 - 左操作数 - 右操作数

中序遍历:左操作数 - 符号 - 右操作数

后序遍历:左操作数 - 右操作数 - 符号


中缀表达式


上面的公式,中序遍历的结果为

image.png

显然,这种表达方式是有歧义的,比如ab是一颗子树,cd是一颗子树,最后相减,遍历结果和上面是一样的


所以中缀表达式必须借助括号,才能正确地表达出想要的结果


中缀表达式的表示结果为

  image.png

这种表达方式,符合人类的阅读习惯


前缀表达式


上面的公式,先序遍历的结果为

image.png

这种表达方式是没有歧义的,可以直接作为前缀表达式的结果


这种表达方式,符合计算机的处理习惯,程序可以很容易地解析这种表达式


具体如何解析,下面会给出代码


后缀表达式


上面的公式,后序遍历的结果为

image.png


这种表达方式,也符合计算机的处理习惯,解析也很简单


相对于前缀表达式来说,后缀表达式的符号读取顺序,和人类阅读习惯是一致的

因此实际计算机程序中,基本都是用后缀表达式来存储公式的,前缀表达式效果次之

对于中缀表达式,我们则可以先将其转为后缀表达式,再进行求值


目录
相关文章
|
15小时前
|
存储 算法 关系型数据库
实验 3:图形数据结构的实现与应用
实验 3:图形数据结构的实现与应用
11 3
|
15小时前
|
存储 算法
实验 2:树形数据结构的实现与应用
实验 2:树形数据结构的实现与应用
5 0
|
15小时前
|
算法 编译器 C语言
数据结构——二叉树四种遍历的实现-3
数据结构——二叉树四种遍历的实现
数据结构——二叉树四种遍历的实现-3
|
15小时前
|
存储
数据结构——二叉树四种遍历的实现-2
数据结构——二叉树四种遍历的实现
数据结构——二叉树四种遍历的实现-2
|
15小时前
|
机器学习/深度学习
数据结构——二叉树四种遍历的实现-1
数据结构——二叉树四种遍历的实现
数据结构——二叉树四种遍历的实现-1
|
15小时前
|
存储 NoSQL Redis
Redis数据结构精讲:选择与应用实战指南
Redis数据结构精讲:选择与应用实战指南
14 0
|
15小时前
栈的基本应用
栈的基本应用
12 3
|
15小时前
【数据结构】二叉树的三种遍历(非递归讲解)
【数据结构】二叉树的三种遍历(非递归讲解)
8 1
|
15小时前
|
存储
【数据结构】二叉树相关oj题(一)
【数据结构】二叉树相关oj题(一)
10 1
|
15小时前
|
存储 缓存 监控
中间件应用合理使用缓存和数据结构
【5月更文挑战第4天】中间件应用合理使用缓存和数据结构
22 3
中间件应用合理使用缓存和数据结构