对于一颗二叉树,可以根据先序遍历(或者后序遍历)和中序遍历(树中不含重复的数字)重新还原出二叉树。
解析:
1. 先序遍历序列的第一个元素必定是根节点,可以由此获取二叉树的根节点。
2. 根据根节点,在中序遍历序列中查找该节点,由中序遍历的性质可知,中序遍历中该根节点左边的序列必定在根节点的左子树中,而根节点右边的序列必定在右子树中。由此可以知道先序遍历中左子树以及右子树的起止位置。
3. 找到了左右子树前序遍历和中序遍历再用同样的方法分别构建左右子树,典型的递归思想。...
分类:
其他好文 时间:
2015-07-09 18:00:45
阅读次数:
345
先序遍历树的每个结点,若遍历到的结点有子结点,则交换它的两个子结点。
1. 递归求解:
voidMirroRecursively(BinaryTreeNode *pNode)
{
if(NULL == pNode)
return;
if(NULL == pNode->Left && NULL== pNode->Right)...
分类:
其他好文 时间:
2015-07-07 17:06:22
阅读次数:
170
二叉树的定义: 二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成。 二叉树的遍历方式主要有:先序遍历(NLR),中序遍历(LNR),后序遍历(LRN),和层次遍历。 注意: ...
分类:
编程语言 时间:
2015-07-02 20:57:24
阅读次数:
154
1.怎样依据二叉树的先序遍历和中序遍历结果还原二叉树?比方。先序遍历结果是{1,2,4,7,3,5,6,8},中序遍历结果是{4,7,2,1,5,3,8,6}。那么重建二叉树的步骤例如以下: 1.先序遍历方式为:根->左->右.故1为根节点。中序方式为:左->根->右,所以4,7,2为左子树上的结点...
分类:
其他好文 时间:
2015-07-02 20:51:26
阅读次数:
192
介绍:树是数据结构中非常重要的一种,主要的用途是用来提高查找效率,对于要重复查找的情况效果更佳,如二叉排序树、FP-树。另外可以用来提高编码效率,如哈弗曼树。
代码:用python实现树的构造和几种遍历算法,虽然不难,不过还是把代码作了一下整理总结。实现功能:
树的构造
递归实现先序遍历、中序遍历、后序遍历
堆栈实现先序遍历、中序遍历、后序遍历
队列实现层次遍历
#coding=utf-8cl...
分类:
编程语言 时间:
2015-07-02 10:10:52
阅读次数:
142
介绍:树是数据结构中非常重要的一种,主要的用途是用来提高查找效率,对于要重复查找的情况效果更佳,如二叉排序树、FP-树。另外可以用来提高编码效率,如哈弗曼树。
代码:用python实现树的构造和几种遍历算法,虽然不难,不过还是把代码作了一下整理总结。实现功能:
树的构造
递归实现先序遍历、中序遍历、后序遍历
堆栈实现先序遍历、中序遍历、后序遍历
队列实现层次遍历
#coding=utf-8cl...
分类:
编程语言 时间:
2015-07-01 18:16:08
阅读次数:
118
问题描述:
输入显示的是中序遍历非递归,栈的操作,输出树的后序遍历
问题关键
push的顺序为先序遍历,pop的顺序为中序遍历
问题转换为由先序遍历、中序遍历求后续遍历/*=============================================================================
# COPYRIGHT NOTICE
#...
分类:
其他好文 时间:
2015-07-01 14:15:27
阅读次数:
89
前序遍历(DLR)又叫先根遍历,先序遍历,前序周游.中序遍历(LDR)后序遍历(LRD)举例说明表达式的三种表示方式:(3 + 4) × 5 - 6 就是中缀表达式- × + 3 4 5 6前缀表达式3 4 + 5 × 6 -后缀表达式也可以理解成把符号缀在前中后.
分类:
其他好文 时间:
2015-06-24 22:24:47
阅读次数:
116
http://codevs.cn/problem/1029/
给出一棵二叉树(节点是小写字符)的按照先序遍历和后续遍历得到的字符串,其实就是求有多少和二叉树的先序遍历和后序遍历满足这两个字符串。
区间dp:dp(l, r, a, b)表示s字符串的(l, r)段和t字符串的(a, b)段相匹配的方案数。那么s[l]和t[b]必须一样,因为这两个是这一段的根节点。然后我们再枚举(l,r)的左...
分类:
其他好文 时间:
2015-06-15 09:23:06
阅读次数:
117
http://codevs.cn/problem/1029/给出一棵二叉树(节点是小写字符)的按照先序遍历和后续遍历得到的字符串,其实就是求有多少和二叉树的先序遍历和后序遍历满足这两个字符串。区间dp:dp(l, r, a, b)表示s字符串的(l, r)段和t字符串的(a, b)段相匹配的方案数。...
分类:
其他好文 时间:
2015-06-14 22:40:20
阅读次数:
153