前/中/后缀表达式的转换
来源:互联网 发布:全景通系统源码 编辑:程序博客网 时间:2024/06/10 03:56
自然表达式转换为前/中/后缀表达式,其实是很简单的。首先将自然表达式按照优先级顺序,构造出与表达式相对应的二叉树,然后对二叉树进行前/中/后缀遍历,即得到前/中/后缀表达式。
举例说明将自然表达式转换成二叉树:
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 算术表达式的转换(模拟栈;前中后缀转换)
- 前、中、后缀形式的表达式
- 表达式的前中后缀表示和表达式运算
- 前中后缀表达式以及表达式树
- JUnit的框架设计及其使用的设计模式 .
- 限制textarea的长度
- 添加控制文件
- Spring任务调度Quartz CronTrigger设置说明
- sysfs 文件系统
- 前/中/后缀表达式的转换
- JUnitReport的使用 .
- 日志的操作
- hibernate一对多关联关系配置经验
- KVM故障调试经验
- javaSe学习前奏
- ExtJs(一)
- 放弃 或 坚持
- 如何从零开始开发一款嵌入式产品