红黑树 (参看《算法导论》) 红黑树是一种平衡二叉树,巧妙地利用结点颜色来简化维护平衡的难度。具有如下性质: 1.红黑树上所有结点要么是红色的,要么是黑色的。 2.红黑树的根节点是黑色的。 3.如果一个结点是红色的,那么他的两个子结点必须是黑色的。 4.对于每一个结点,他左子树的黑...
分类:
其他好文 时间:
2015-11-28 23:13:33
阅读次数:
347
B树即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字...
分类:
其他好文 时间:
2015-11-27 19:26:00
阅读次数:
114
//普里姆算法//构造连通网的最小代价生成树/*基本思路: 1. 任选一个结点,任选一个作为这棵树的起点。 2. 找出所有与当前树中叶子结点连接的边,找出权最小的一条边, 将这条边的另一个端点加入到树中。 3. 重复2的操作,直到连接所有结点。重点: 1.lo...
分类:
编程语言 时间:
2015-11-26 19:11:47
阅读次数:
188
二叉搜索树或是一颗空二叉树, 或是具有以下性质的二叉树:
1.若左子树不为空, 则左子树上所有结点的关键字值均小于根结点的关键字值.
2.若右子树不为空, 则右子树上所有结点的关键字值均大于根结点的关键字值.
3.左右子树也分别是二叉搜索树.
性质: 若以中序遍历一颗二叉搜索树, 将得到一个以关键字值递增排列的有序序列.
1.搜索实现: 若二叉树为空, 则搜索失败. 否则...
分类:
其他好文 时间:
2015-11-18 18:06:24
阅读次数:
175
题目链接:http://poj.org/problem?id=3764题目大意是在树上求一条路径,使得xor和最大。由于是在树上,所以两个结点之间应有唯一路径。而xor(u,v)=xor(0,u)^xor(0,v)。所以如果预处理出0结点到所有结点的xor路径和,问题就转换成了求n个数中取出两个数,...
分类:
其他好文 时间:
2015-11-11 20:49:14
阅读次数:
283
2.实现下述要求的Locate运算的函数问题描述设有一个带表头结点的双向链表L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freq。所有结点的freq初始时都为0。每当在链表上进行一次Locate(L,x)操作时,令元素值为x的...
分类:
其他好文 时间:
2015-11-08 19:24:51
阅读次数:
243
题目大意:给定一棵n个顶点,n-1条边的树。有k个孩子,前k-1个孩子切走树中顶点数不大于n/2的最大连通块,剩余的结点组成新的树。最后一个孩子得到剩余的树中的所有结点。按顺序输出每个孩子能获得的顶点数。解题思路:任选一结点作为根节点,使用深度优先搜索,获得相对于父节点一端,子节点一端的节点总数和节...
分类:
其他好文 时间:
2015-11-07 13:22:04
阅读次数:
182
4.在二元树中找出和为某一值的所有路径题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22 和如下二元树10/ \5 12/ \4 7则打印出两条路径:10, 12 和10, 5, 7思路: 递归 为了....
分类:
编程语言 时间:
2015-10-21 00:07:27
阅读次数:
218
摘自:http://www.cnblogs.com/qi09/archive/2011/05/24/2055643.html4.在二元树中找出和为某一值的所有路径题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输...
分类:
编程语言 时间:
2015-10-14 10:20:18
阅读次数:
240
题意:
给出一个二叉树,叶子结点上有权值;
共有n个叶子结点,权值分别为1-n;
现可将所有结点的左右儿子交换,求最小的逆序对数;
2
题解:
这题读入有点鬼畜,但是写起来还是比较优雅的;
考虑到一个结点的子树具体形态与它是否和它的兄弟交换是无关的;
所以我们可以像分治一样,先计算子树之间的最小逆序对数;
然后将所有的权值扔到一个线段树中,向它的父亲传递;
它的父亲是没...
分类:
其他好文 时间:
2015-09-30 13:08:06
阅读次数:
210