前/中/后缀表达式的转换
来源:互联网 发布:宝安 知乎 编辑:程序博客网 时间:2024/05/29 11:28
自然表达式转换为前/中/后缀表达式,其实是很简单的。首先将自然表达式按照优先级顺序,构造出与表达式相对应的二叉树,然后对二叉树进行前/中/后缀遍历,即得到前/中/后缀表达式。
举例说明将自然表达式转换成二叉树:
a×(b+c)-d
① 根据表达式的优先级顺序,首先计算(b+c),形成二叉树
②然后是a×(b+c),在写时注意左右的位置关系
③最后在右边加上 -d
然后最这个构造好的二叉树进行遍历,三种遍历的顺序分别是这样的:
① 前序遍历:根-左-右
② 中序遍历:左-根-右
③ 后序遍历:左-右-根
所以还是以刚才的这个例子,在最终二叉树的基础上可以得出:
前缀表达式:-*a+bcd
中缀表达式:a*b+c-d
后缀表达式:abc+*d-
一些其他的遍历原则:
1、深度优先遍历:
首先访问出发点V,并将其标记为已访问过;然后依次从V出发搜索V的每个邻接点W。若W未曾访问过,则以W为新的出发点继续进行深度优先遍历,直至图中所有和源点V有路径相通的顶点(亦称为从源点可达的顶点)均已被访问为止。若此时图中仍有未访问的顶点,则另选一个尚未访问的顶点作为新的源点重复上述过程,直至图中所有顶点均被访问为止。
2、广度优先遍历:
首先访问出发顶点V,然后访问与顶点V邻接的全部未被访问过的顶点W0,W1,...WK-1;接着再依次访问与顶点W0,W1,...WK-1邻接的全部未被访问过的顶点,以此类推,直至图的所有顶点都被访问到,或出发顶点V所在的连通分量的全部顶点都被访问到为止。
注:对于树来说,深度优先就是从左到右,从上到下;广度优先就是从上到下,从左到右。
-The End-
- 前/中/后缀表达式的转换
- 前/中/后缀表达式的转换
- 前/中/后缀表达式的转换
- 前/中/后缀表达式的转换
- 【前/中/后缀表达式的转换 】
- 前/中/后缀表达式的转换
- 前/中/后缀表达式的转换
- 前/中/后缀表达式的转换
- 前、中、后缀表达式
- 前、中、后缀表达式
- 前中后缀表达式
- 中、前、后缀表达式
- 前中后缀表达式
- 前 、中、后缀表达式
- 暑假集训 8.6 sdutoj2484 算术表达式的转换(模拟栈;前中后缀转换)
- 前、中、后缀形式的表达式
- 表达式的前中后缀表示和表达式运算
- 前中后缀表达式以及表达式树
- 图像匹配方法浅谈
- Windows 下单机最大TCP连接数
- LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
- C++虚函数表解析【一】
- oracle Enterprise Linux 5 配置xmanager连接
- 前/中/后缀表达式的转换
- 用Asp.net写自己的服务框架
- 【系统之家首发】10月最新GhostWin7_SP1旗舰版(64位)电脑公司装机版v2011.10
- Eclipse下搭建Android开发环境(Windows XP SP2 32位)
- CentOS 5安装免费主机控制面板Webmin
- C语言100个经典的算法
- 一步一步写算法(之prim算法 上)
- 各大开发平台申请攻略
- python 操作符学习