题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于
右子树的结点。用递归和循环两种方法完成树的镜像转换。
例如输入:
8
/ 6 10
/\ /5 7 9 11
输出:
8
/ 10 6
/\ /11 9 7 5
思路:这也是一个递归的题目,对于当前节点,如果不是NULL节点或者叶子节点,那么只需要交换左右子节点...
分类:
其他好文 时间:
2015-04-29 09:58:55
阅读次数:
112
索引全扫描(INDEX FULL SCAN),就是指要扫描目标索引所有叶子块的所有索引行。此处介绍了两种情况:查询的列为唯一索引列、唯一索引列出现在order by中
分类:
其他好文 时间:
2015-04-29 01:57:58
阅读次数:
145
本文内容基于An introductory tutoril onkd-trees1.KDTree介绍KDTree根据m维空间中的数据集D构建的二叉树,能加快常用于最近邻查找(在加快k-means算法中有应用)。其节点具有如下属性(对应第5节中的程序实现):非叶子节点(不存储数据):partition...
分类:
编程语言 时间:
2015-04-29 00:37:24
阅读次数:
438
题解:
贪心策略步骤一:
如果有多个儿子,那么显然(这里是真的显然,真的不给证明了)我们肯定要先合并小儿子后合并大儿子。
贪心策略步骤二:
因为所有节点的载重是相同的,所以我们要先合并叶子节点,不能合并就把父亲的权值+1然后叶子就可以去掉啦~(若父亲要被合并上去,那么爷爷就会多出若干被计数为1的儿子)。
证明1:
为什么一定先合并叶子?
因为:
1.如果合并完父亲叶子还能合并,...
分类:
其他好文 时间:
2015-04-27 21:56:40
阅读次数:
138
开始的地方先放上关于二叉树的定义二叉树:是n(n>=0)个结点的有限集合,它或者是空树(n=0),或者是由一个根结点及两颗互不相交的、分别称为左子树和右子树的二叉树所组成。满二叉树:一颗深度为k且有2^k-1个结点的二叉树称为满二叉树。除叶子结点外的所有结点均有两个子结点。节点数达到最大值。所有叶子...
分类:
其他好文 时间:
2015-04-27 19:40:27
阅读次数:
130
题目描述:
如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义“距离”为两个节点之间的边的个数。写一个程序,求一颗二叉树中相距最远的两个节点之间的距离。
分析与解答:
根据相距最远的两个节点一定是叶子节点这个规律,我们可以进一步讨论。
对于任意一个节点,以该节点为根,假设这个根有K个孩子结点,那么相距最远的两个节点U和V之间的路径与这...
分类:
其他好文 时间:
2015-04-27 15:18:50
阅读次数:
104
题意:找两个叶子节点,使他们之间的路径(边数)最长,返回路径长度。思路:刚看到数据 2 #include 3 #include 4 using namespace std; 5 vector > gra; //树以临接表记录(有向图) 6 int maxsum; 7 int DFS(int...
分类:
其他好文 时间:
2015-04-27 00:22:56
阅读次数:
103
构建trie树,可以得到4类结点:必胜点,必负点,完全主宰点(可胜可负),完全无法主宰点(无法控制最终胜负)。递归到叶子结点,即为必胜点,回溯分情况讨论。注意叶子结点使用属性n来控制,n表示当前结点的儿子结点的数目,叶子结点没有儿子。 1 /* 456D */ 2 #include 3 #i...
分类:
其他好文 时间:
2015-04-26 19:39:42
阅读次数:
121
背景:开始自己想了一个贪心思路,结果是错的。其实这个题是哈夫曼树的思想,贪心只是哈夫曼树的证明和构造思想。
哈夫曼树:一种带权最短二叉树(也就是所有叶子节点的权重乘以深度的和最小),在实际中是用来做最高效信息编码的。信息的频率就是权重,一个频率很低的数,它的编码就应该长,树的深度就应该大。实际信息编码会根据信息字符的频率来构建一个哈夫曼树,已达到最高效。
本题和哈夫曼树是一个很好的契合,解决本题...
分类:
其他好文 时间:
2015-04-26 09:15:21
阅读次数:
119
转自:http://blog.csdn.net/sqx2011/article/details/8241734胜者树和败者树都是完全二叉树,是树形选择排序的一种变型。每个叶子结点相当于一个选手,每个中间结点相当于一场比赛,每一层相当于一轮比赛。 不同的是,胜者树的中间结点记录的是胜者的标号;而败者树...
分类:
编程语言 时间:
2015-04-25 13:26:08
阅读次数:
390