二叉树 对于一棵二叉树,我们知道他是树的一种特殊情况,但二叉树在满足某些条件的情况下可以描述大部分树! 对于新学习树的同学,我就先引入树的一些概念: 一个树是由n个元素组成的有限集合,每个元素我们叫做节点(node),特定的节点,叫根节点或者树根(root) 一棵树至少是有一个节点的;其他概念我们在 ...
分类:
其他好文 时间:
2017-08-10 22:38:56
阅读次数:
174
二叉平衡树之删除节点操作 更好的判断最小非平衡树类型的方法 在前一篇文章中,我们知道最小非平衡树可以分为四种类型,即:LL型、LR型、RR型和RL型。而且我也按照自己的理解,归纳了判断是哪种类型的方法。总结一下就是:设最小非平衡树的树根为unbalance,首先看unbalance的左右子树谁更高, ...
分类:
其他好文 时间:
2017-08-07 22:11:26
阅读次数:
231
一、赫夫曼树定义与原理 1.路径长度:从树中一个结点到还有一个结点之间的分支构成两个结点之间的路径,路径上的分支数目称作路径的长度; 2.树的路径长度:即从树根到每一结点的路径长度之和; 3.结点的带权的路径长度:即从该结点从到树根之间的路径长度与结点上权的乘积; 4.树的带权路径长度:为树中全部叶 ...
分类:
其他好文 时间:
2017-08-07 12:04:41
阅读次数:
267
[UVA699]The Falling Leaves 算法入门经典第6章例题6-10(P159) 题目大意:有一颗二叉树,求水平位置的和。 试题分析:乱搞就可以过,将树根节点的pos记为0,向左-1,向右+1,统计答案即可。 ...
分类:
其他好文 时间:
2017-08-06 23:11:52
阅读次数:
207
伸展树 1、在伸展树上的一般操作都基于伸展操作:假设想要对一个二叉查找树执行一系列的查找操作,为了使整个查找时间更小,被查频率高的那些条目就应当经常处于靠近树根的位置。因此,在每次查找之后对树进行重构,把被查找的条目搬移到离树根近一些的地方。伸展树应运而生。伸展树是一种自调整形式的二叉查找树,它会沿 ...
分类:
其他好文 时间:
2017-08-05 00:07:39
阅读次数:
103
题目链接:http://poj.org/problem?id=1330 题意:给定一个n个节点的有根树,以及树中的两个节点u,v,求u,v的最近公共祖先。 数据范围:n [2, 10000] 思路:从树根出发进行后序深度优先遍历,设置vis数组实时记录是否已被访问。 每遍历完一棵子树r,把它并入以r ...
分类:
编程语言 时间:
2017-08-04 19:24:45
阅读次数:
166
红黑树,顾名思义,就是把平衡二叉搜索树的节点赋予两种颜色,通过定义几条规则,达到约束的目的。红黑树可以保证,每次插入删除操作后的重平衡,全树拓扑结构的改变仅需要常数个节点,最坏情况下需要对logn个节点重染色,但是就分摊意义仍然为O(1)。 需要满足的条件: (1)树根始终为黑色 (2)外部节点均为 ...
分类:
其他好文 时间:
2017-08-03 18:08:36
阅读次数:
156
题目 查看原题 - HDU6031 Innumerable Ancestors 题目描述 有一棵有n个节点的有根树,根节点为1,其深度为1,现在有m个询问,每次询问给出两个集合A和B,问LCA(x,y)(x∈A,y∈B)的深度最大为多少。 输入描述 有多组数据(数据组数<=5) 对于每一组数据,首先 ...
分类:
编程语言 时间:
2017-07-30 21:08:30
阅读次数:
259
题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。 输入输出格式 输入格式: 第一行包含三个正整数N、M、S,分别表示树的结点个数、询问的个数和树根结点的序号。 接下来N-1行每行包含两个正整数x、y,表示x结点和y结点之间有一条直接连接的边(数据保证可以构成树)。 接下来M行 ...
分类:
其他好文 时间:
2017-07-29 23:13:07
阅读次数:
189
题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。 输入输出格式 输入格式: 第一行包含三个正整数N、M、S,分别表示树的结点个数、询问的个数和树根结点的序号。 接下来N-1行每行包含两个正整数x、y,表示x结点和y结点之间有一条直接连接的边(数据保证可以构成树)。 接下来M行 ...
分类:
其他好文 时间:
2017-07-29 19:40:55
阅读次数:
332