对于一颗二叉树,可以根据先序遍历(或者后序遍历)和中序遍历(树中不含重复的数字)重新还原出二叉树。
解析:
1. 先序遍历序列的第一个元素必定是根节点,可以由此获取二叉树的根节点。
2. 根据根节点,在中序遍历序列中查找该节点,由中序遍历的性质可知,中序遍历中该根节点左边的序列必定在根节点的左子树中,而根节点右边的序列必定在右子树中。由此可以知道先序遍历中左子树以及右子树的起止位置。
3. 找到了左右子树前序遍历和中序遍历再用同样的方法分别构建左右子树,典型的递归思想。...
分类:
其他好文 时间:
2015-07-09 18:00:45
阅读次数:
345
定义
二叉树(binary tree)是n(n>=0)个结点的有限集合,该集合为空集合称为空二叉树,或者有一个根结点和两棵互不相交的,分别称为树根结点的左孩子树和右孩子树组成.
二叉树的特点
每个结点最多有两棵子树,所以二叉树总没有度大于2的结点
左子树和右子树是有顺序的,次数不能任意颠倒
即使树中某结点只有一棵子树,也要区分是左子树还是右子树
特殊的二叉树1. 斜树...
分类:
其他好文 时间:
2015-07-07 09:40:05
阅读次数:
170
好的数据结构,对于检索数据,插入数据的效率就会非常高。常见的数据结构B+树根节点和枝节点很简单,分别记录每个叶子节点的最小值,并用一个指针指向叶子节点。
叶子节点里每个键值都指向真正的数据块,每个叶子节点都有前指针和后指针,这是为了做范围查询时,叶子节点间可以直接跳转,从而避免再去回溯至枝和根节点。
特点:
1、有n棵子树的结点中含有n个关键字,每个关键字不保存数据,只用来索引,所有数据都保存...
分类:
其他好文 时间:
2015-07-04 09:40:12
阅读次数:
237
set集合容器使用一种称为红黑树(Red-Black Tree) 的平衡二叉检索树的数据结构,来组织泛化的元素数据。每个节点包含一个取值红色或黑色的颜色域,以利于进行树的平衡处理。作为节点键值的元素的插入,必须确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值。不会将重复的键值插入容器,也不需要指定具体的插入位置,而按元素在树中的关联关系,进行位置检索和插入,元素的删除亦...
分类:
其他好文 时间:
2015-07-03 20:44:39
阅读次数:
158
题意:一个村子有n个房子,他们用n-1条路连接起来,每两个房子之间的距离为w,有m次询问,每次询问房子a,b之间的距离是多少。
分析:最近公共祖先问题,建一棵树,求出每一点i到树根的距离d[i],每次询问a,b之间的距离=d[a]+d[b]-2*d[LCA(a,b)];LCA(a,b)是a,b的最近公共祖先。
#pragma comment(linker, "/STACK:1024000000...
分类:
编程语言 时间:
2015-06-29 14:52:31
阅读次数:
164
??
题意:有一堆的木棒,长度不一,它们是有一些整齐的木棒截断而成的,求最小的木棒原始长度。
思路很简单深搜,但是直接深搜的话会tle,首先可以对木棒长度进行排序从大到小,优先使用长度长的木棒,加入当前长度不符合,考虑下一个木棒
其次如果长度为零的时候选择木棒失败,那么直接退出,实测加上这一剪枝就可以ac,这一剪枝可以帮助我们尽可能的在靠近树根处剪枝,所以优化效果很明显。
然后是如果这次选...
分类:
其他好文 时间:
2015-06-26 12:55:41
阅读次数:
137
【题目】输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都各不相同。【分析】假设输入数组{5,7,6,9,11,10,8}要判断它是不是二叉搜索树的后序遍历结果,就要结合二叉搜索树特点及后序遍历的方法来判断,后序遍历特点是数组最后一个就是二叉树的根节点,所以由此判断树根结点为8,并且先遍历左子树,再遍历右子树,所以...
分类:
其他好文 时间:
2015-06-25 17:31:52
阅读次数:
155
1、二叉树结点编号在一棵n个结点的完全二叉树中,从树根起,自上层到下层,每层从左至右,给所有结点编号,能得到一个反映整个二叉树结构的线性序列。
编号特点
2、二叉树性质...
分类:
其他好文 时间:
2015-06-22 11:09:34
阅读次数:
119
我直接来讲在线好了这是一个很巧妙的方法,把边作为一个点做一遍最小生成树,当加如一条边时,我们把这条边两点x,y的并查集的根i,j的父亲都设为这条边代表的点k,由k向i,j连边这样我们就构建出一棵树,这棵树的叶子都是原来节点且每棵子树都是在子树根所代表的边的限制下的最小连通块这样我们就可以通过dfs序...
分类:
其他好文 时间:
2015-06-20 18:17:24
阅读次数:
274
一、前端代码的编写 jQuery Mobile Web 应用程序 Phonegap发送短信插件 你好树根我们做朋友吧! 发送 ...
分类:
移动开发 时间:
2015-06-18 23:45:24
阅读次数:
211