树链剖分整理总结 问题的设置: 对于一株树(无向无环连通图),为每个结点分配对应的权重。要求能高效计算任意两个结点之间的路径的各类信息,其中包括路径长度(路径上所有结点的权重加总),路径中最大权重,最小权重等等。到这里一切都还是比较简单的,我们可以利用Tarjan的LCA算法在线性时间复杂度内快速求 ...
分类:
其他好文 时间:
2018-03-01 00:49:12
阅读次数:
201
概念 性质: 1.堆是一颗完全二叉树,用数组实现。 2.堆中存储数据的数据是局部有序的。 最大堆:1.任意一个结点存储的值都大于或等于其任意一个子结点中存储的值。 2.根结点存储着该树所有结点中的最大值。 最小堆:1.任意一个结点存储的值都小于或等于其惹你一个子结点存储的值。 2.根结点存储着该树所 ...
分类:
其他好文 时间:
2018-02-28 16:23:14
阅读次数:
212
1. 二叉搜索树,又称BST。满足三个性质: (1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)它的左、右子树也分别为二叉排序树。 2. 常用操作: (1)中序遍历二叉排序树可得到一个有序序列。一个无序序 ...
分类:
其他好文 时间:
2018-02-19 17:28:56
阅读次数:
162
二叉查找树的性质: 1.左子树上所有结点的值均小于或等于它的根结点的值。 2.右子树上所有结点的值均大于或等于它的根结点的值。 3.左、右子树也分别为二叉排序树。 下图中这棵树,就是一颗典型的二叉查找树: ...
分类:
其他好文 时间:
2018-02-17 19:40:43
阅读次数:
150
题目链接:两个链表的第一个公共结点 思路:如果两个链表有公共结点,则第一个公共结点以及之后的所有结点都是重合的,即至少它们的尾结点是重合的。因为两个链表长度不一定相等,所以同步遍历时不能保证两个链表同时到达尾结点。假设一个链表比另一个多k个结点,先在长的链表上遍历k个结点即尾部对齐,再同步遍历,保证 ...
分类:
其他好文 时间:
2018-02-13 12:27:01
阅读次数:
140
在处理数据的时候,二叉查找树是排好序的树,可以很快的实现数据的查找。其定义为:二叉查找树或者是空树,或者是满足如下性质的二叉树: 1. 若它的左子树非空,则左子树上所有结点的值均小于根结点的值; 2. 若它的右子树非空,则右子树上所有结点的值均大于根结点的值; 3. 左、右子 ...
分类:
其他好文 时间:
2018-02-06 01:08:21
阅读次数:
118
1、二叉树的定义: 二叉树是每个节点最多有两个子树的树结构。 特别地: ①除了最后一层节点外,其他节点的数目都达到了所在层的最大值,称为完全二叉树。同时,最后一层的所有节点必须从最后一层的左边开始。而不是说左边一个,右边一个,中间一个。(运用 : 二叉堆) ②除最后一层外,每一层上的所有结点都有两个 ...
分类:
其他好文 时间:
2018-02-01 14:53:51
阅读次数:
174
作为二叉排序树,红黑树具有如下5个性质: 1 所有结点的颜色是红色或者黑色。 2 根结点是黑色。 3 所有的叶子结点(包含NULL)是黑色。 4 每个红色的结点的孩子结点必须是黑色。 5 从任意结点出发,到其所有叶子结点的简单路径上都包含相同数量的黑色结点。 它确保没有一条路径会比其他路径长1倍。因 ...
分类:
其他好文 时间:
2018-01-28 15:35:58
阅读次数:
151
推荐学习WJMZBMR《重量平衡树和后缀平衡树在信息学奥赛中的应用》 转自hzwer: 在替罪羊树每个结点放一棵包含该子树所有结点的权值线段树,也就是平衡树套权值线段树 1、由于外层是平衡树,那么就能实现插入一个结点:找到它的位置,在根到其路径上所有结点的线段树中插入这个值 2、查询区间第K大:找到 ...
分类:
其他好文 时间:
2018-01-27 19:10:55
阅读次数:
159
2.2 堆排序 堆:1. 是完全二叉树;2. 树中所有结点都比左右孩子大(或小)。(但在实现过程发现,其实堆排序并没有用到树结构,还是用的顺序表,只是用完全二叉树来理解而已)。 堆排序是一种选择排序算法,其主要思路是:先将所有待排序元素构造成一个大顶堆(或小顶堆),接着将堆顶元素和最后一个元素(层序 ...
分类:
编程语言 时间:
2018-01-27 19:01:38
阅读次数:
153