数据结构-二叉树表达式快速求解法
来源:互联网 发布:2017网络舆情事件 编辑:程序博客网 时间:2024/05/21 14:53
在以二叉树表示表达式时,已知某一种遍历,如何最快的求其它两种遍历结果?
例如:已知某表达式A+B*(C-D)-E/F*G(中序遍历),求波兰式(先序遍历)和逆波兰式(后序遍历)
可以通过先构造一二叉树,然后再写出波兰式和逆波兰式,效率较低,下面讨论一下在不构造二叉树的情况下,如何最快的写出波兰式和你波兰式。
分析思路:根据运算的优先级推算。
步骤:从运算级别较高的变量开始(从左至右),然后涉及运算符。
求波兰式:第一步,得出CD,然后加入运算符-得到-CD;第二步,将-CD作为一个整体得B-CD,加入运算符*得*B-CD;第三步,将*B-CD作为一个整体得+A*B-CD;第四步,由E/F得/EF;第五步,得*/EFG,然后将+A*B-CD,-,*/EFG合并得-+A*B-CD*/EFG,完毕。
求逆波兰式:第一步,得出CD,加入符号-得CD-;第二步,得到BCD-*;第三步,得到ABCD-*+;第四步,得到EF/;第五步,得到EF/G*;第六步,得ABCD-*+EF/G*-,完毕。
对照二叉树:
- 数据结构-二叉树表达式快速求解法
- 【数据结构】二叉树部分面试题解法
- 求二叉树中节点的最大距离递归解法
- 【数据结构】中缀表达式求值解法
- 求C++数据结构二叉树的宽度
- 数据结构之二叉树求叶子节点
- 【数据结构基础】求二叉树高度
- 【数据结构基础】求二叉树结点个数
- 数据结构快速回顾——二叉树
- 数据结构学习笔记--二叉表达式树
- 【数据结构】中缀表达式构造二叉树转换成后缀表达式
- 《编程之美: 求二叉树中节点的最大距离》的另一个解法
- 《编程之美: 求二叉树中节点的最大距离》的另一个解法
- 《编程之美: 求二叉树中节点的最大距离》的另一个解法
- 《编程之美: 求二叉树中节点的最大距离》的另一个解法(转)
- 《编程之美: 求二叉树中节点的最大距离》的另一个解法
- 《编程之美: 求二叉树中节点的最大距离》的另一个解法
- 《编程之美: 求二叉树中节点的最大距离》的另一个解法
- 防止恶意字符输入
- EZW算法的过程详解和Matlab代码(1)构建扫描次序表(修正小波树结构)
- IIS6.0服务器架站无法访问解决方案总结
- java的static import
- 程序员想创业首先要突破自己三关
- 数据结构-二叉树表达式快速求解法
- Hibernate提升性能
- 杀毒小谈
- cab打包详解
- Ashampoo ClipFinder v1.26 多国语言版
- 简单工厂模式 Simple Factory Pattern
- SD2.0大会上和C++天才Andrie Alexandrescu合了个影!!!
- 数据库基本----SQL语句大全
- 用CSDN发帖时显示“运行代码”窗口