前/中/后缀表达式的转换
来源:互联网 发布:centos 6.9 内核版本 编辑:程序博客网 时间:2024/05/15 08:31
前/中/后缀表达式的转换
自然表达式转换为前/中/后缀表达式,其实是很简单的。首先将自然表达式按照优先级顺序,构造出与表达式相对应的二叉树,然后对二叉树进行前/中/后缀遍历,即得到前/中/后缀表达式。
举例说明将自然表达式转换成二叉树:
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所在的连通分量的全部顶点都被访问到为止。
注:对于树来说,深度优先就是从左到右,从上到下;广度优先就是从上到下,从左到右。
- 前/中/后缀表达式的转换
- 前/中/后缀表达式的转换
- 前/中/后缀表达式的转换
- 前/中/后缀表达式的转换
- 【前/中/后缀表达式的转换 】
- 前/中/后缀表达式的转换
- 前/中/后缀表达式的转换
- 前/中/后缀表达式的转换
- 前、中、后缀表达式
- 前、中、后缀表达式
- 前中后缀表达式
- 中、前、后缀表达式
- 前中后缀表达式
- 前 、中、后缀表达式
- 暑假集训 8.6 sdutoj2484 算术表达式的转换(模拟栈;前中后缀转换)
- 前、中、后缀形式的表达式
- 表达式的前中后缀表示和表达式运算
- 前中后缀表达式以及表达式树
- $ lsnrctl start 错误的解决
- 抉择
- iis运行asp.net页面提示“服务器应用程序不可用”的解决办法
- 雪花吻aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- 关于线性表的一些很有意思的题目1
- 前/中/后缀表达式的转换
- 常用软件推介
- Assert浅谈
- Andorid Activity
- JDBC插入Mysql数据库中文乱码问题
- 就这样吧 ! 好习惯, 我要养成很多好习惯,今天2010年11月26日
- mtk 中 nvram 的读写操作
- 如何彻底删除oracle
- linux 隐藏进程 - crux实现