0011从后缀表达式与二叉树的关系
来源:互联网 发布:淘宝火焰素材免费下载 编辑:程序博客网 时间:2024/06/07 12:57
本文转自:http://www.jellythink.com/archives/688
二叉树的遍历
对于二叉树无非就三种遍历方式:
- 前序遍历;
- 中序遍历;
- 后序遍历;
对于这三种遍历方式,我通过下面这张图来详细的介绍一下我的方法。
- 前序遍历:访问根节点->遍历左子树->遍历右子树
- 中序遍历:遍历左子树->访问根节点->遍历右子树
- 后序遍历:遍历左子树->遍历右子树->访问根节点
对于上图中的二叉树,分别使用三种遍历得到的结果分别是:
- 前序遍历:
A
->C
->D
->G
->H
->S
- 中序遍历:
D
->C
->G
->A
->H
->S
- 后序遍历:
D
->G
->C
->S
->H
->A
二叉树的主要用处之一是在编译器设计领域,如下图所示的二叉树:
这是一个颗表达式树,对这个二叉树进行后续遍历,得到的结果是:a b + c d e + d * *
而这种表达式也叫做后缀表达式,很多时候,我们需要根据后缀表达式重新建立一颗二叉树。下面就使用代码实现这种需求。
从后缀表达式建立表达式树
比如现在有以下一个后缀表达式:a b + c d e + * *
根据这个后缀表达式建立二叉表达式树,算法如下:
1. 依次读取表达式;
2. 如果是操作数,则将该操作数压入栈中;
3. 如果是操作符,则弹出栈中的两个操作数,第一个弹出的操作数作为右孩子,第二个弹出的操作数作为左孩子;然后再将该操作符压入栈中。
这样下去,就可以建立一颗完整的表达式树。
下面就使用C++代码进行了简单的实现。
定义树节点信息。
创建一个新的节点。
读取表达式,创建表达式树。
1 0
- 0011从后缀表达式与二叉树的关系
- 后缀表达式与二叉树
- 二叉树与表达式(前缀,中缀,后缀表达式)
- 二叉树中缀表达式到后缀表达式的转换
- 求解算术表达式结合二叉树的后缀表达式问题
- 二叉树 计算后缀表达式
- 后缀表达式 遍历二叉树
- 前缀、中缀、后缀表达式与二叉树的前序、中序、后序遍历
- 前缀、中缀、后缀表达式与二叉树的前序、中序、后序遍历
- 前缀、中缀、后缀表达式与二叉树的前序、中序、后序遍历
- 前缀、中缀、后缀表达式与二叉树的前序、中序、后序遍历
- 栈和二叉树--中缀/后缀表达式的相互转换
- 从后缀表达式建立表达式树
- 前缀、中缀、后缀表达式和二叉树
- [算法学习]后缀表达式转二叉树
- 【后缀表达式+二叉树+层次遍历】HDU1805Expressions
- 后缀表达式 (2) —— 表达树与后缀表达式的运算
- 《数据结构实战》将后缀表达式变成表达式树------二叉树的应用
- 蓝牙设计问与答
- 基础总结篇之六:ContentProvider之读写联系人
- Android卸载监听详解
- tty.js打通浏览器与Linux的通道
- [R语言]文本分类(2)
- 0011从后缀表达式与二叉树的关系
- Struts1和Struts2的区别和对比(完整版)
- 基础总结篇之五:BroadcastReceiver应用详解
- Android视图绘制流程完全解析(二)
- SVN命令使用详解
- Javascript学习1
- EditText监听事件setOnEditorActionListener onEditorAction执行两次
- 图片预加载与图片懒加载
- leetcode Repeated DNA Sequences && 代替两次判断