二叉排序树又称二叉查找树,它是一种对排序和查找都很有用的特殊二叉树。
定义:(1)若它的左子树不为空,则左子树上的所有结点的值均小于它的根结点的值;(2)若它的右子树不为空,则右子树上所有结点的值均小于它的根结点上的值;(3)它的左右子树本身也分别为二叉排序树。通过中序排列我们发现中序遍历的结果是结点的值是由低到高的。二叉排序树的二叉链表存储表示typedef struct{
keyType k...
分类:
编程语言 时间:
2016-03-10 12:52:39
阅读次数:
245
Ad-hoc是wifi的一个模式,依托普通无线局域网802.11家族。网络中所有结点的地位平等,无需设置任何的中心控制结点,省去了无线中介设备AP。比如一台电脑建立了一个网络,这个时候加入了两台电脑。第一个电脑这个时候关闭,那么后来的两台电脑仍可以继续通信,不会受到影响。 Ad hoc网络是一个动态...
分类:
其他好文 时间:
2016-03-08 21:22:57
阅读次数:
136
题目给一棵树,边带有权值,求每一点到其他点路径上的最大权和。 树上任意两点的路径都可以看成是经过某棵子树根的路径,于是果断树分治。 对于每次分治的子树,计算其所有结点到根的距离;对于每个结点,找到另一个离根最远的且与该结点路径过根的结点,二者的距离和就是这个点在过这棵子树的根能到的最远距离。 现在问
分类:
其他好文 时间:
2016-03-05 23:48:52
阅读次数:
553
题目链接:点击打开链接
题意:给出一棵n个结点的树, 每个叶子结点上有一只蚂蚁, 每秒每只蚂蚁可以向相邻结点走一步, 同一时刻同一结点上只能有最多一只蚂蚁(根结点除外),根结点为1, 求所有蚂蚁都移动到1上的最小花费时间。
思路:很容易想到,采取贪心的思路就行了, 那么只要不断向上走就行了, 因为根结点比较特殊, 我们只考虑它的子树, 对于它的每一棵子树, 先dfs处理出所有结点的深度,然后对...
分类:
其他好文 时间:
2016-02-13 15:48:09
阅读次数:
193
B 树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点
分类:
编程语言 时间:
2016-01-27 23:03:11
阅读次数:
334
二叉排序树的定义:二叉排序树或者是空树,或者是满足如下性质的二叉树: ①若它的左子树非空,则左子树上所有结点的值均小于根结点的值; ②若它的右子树非空,则右子树上所有结点的值均大于根结点的值; ③左、右子树本身又各是一棵二叉排序树。 上述性质简称二叉排序树性质(BST性质),故二叉排序树...
分类:
编程语言 时间:
2016-01-21 18:30:34
阅读次数:
257
设一个带表头结点的单链表中所有元素结点的数据值无序,试编写一个函数,删除表中所有其值在给定值s与t之间(包含s和t,要求s<t)的所有结点...
分类:
其他好文 时间:
2016-01-11 20:32:14
阅读次数:
194
B树即二叉搜索树:1.所有非叶子结点至多拥有两个儿子(Left和Right);2.所有结点存储一个关键字;3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进...
分类:
其他好文 时间:
2016-01-08 23:37:51
阅读次数:
182
堆排序 不仅在排序上有较好的时间复杂度,同时最大堆,最小堆在解决top10等问题上有很好的效果。最大堆性质,除了根以为的所有结点i都要满足: A[parent(i)]>=A[i]即,子节点一定小于等于父节点,且任意子树也满足该性质。Max-Heapify是维持最大堆性质的关键。时间复杂度O(lg.....
分类:
编程语言 时间:
2015-12-12 00:03:19
阅读次数:
199
邻接表是图的另一种有效的存储表示方法. 每个顶点u建立一个单链表, 链表中每个结点代表一条边, 为边结点. 每个单链表相当于
邻接矩阵的一行.
adjVex域指示u的一个邻接点v, nxtArc指向u的下一个边结点. 如果是网, 增加一个w域存储边上的权值.
构造函数完成对一维指针数组a的动态空间存储分配, 并对其每个元素赋初值NULL. 析构函数首先释放邻接表中所有结点, 最后释放一维
...
分类:
其他好文 时间:
2015-12-08 12:59:28
阅读次数:
251