二叉树按层遍历 判断条件:结点的左右孩子只有4种情况 其中的三种情况有特例 条件1.结点有右孩子,没有左孩子,直接返回false 条件2.结点左右孩子不全(有左没右,左右都没有),则后面遇到的所有结点,都必须是叶节点 只要不违反1.2的,就是完全二叉树 ...
分类:
其他好文 时间:
2018-04-26 01:23:34
阅读次数:
175
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 如图: ...
分类:
其他好文 时间:
2018-04-23 00:06:56
阅读次数:
160
二叉树的遍历 所谓遍历是指对树中所有结点的信息的访问,即依次对树中每个结点访问一次且仅访问一次,我们把这种对所有节点的访问称为遍历(traversal)。 树的两种重要的遍历模式是深度优先遍历和广度优先遍历: 深度优先一般用递归 广度优先一般用队列 一般情况下能用递归实现的算法大部分也能用堆栈来实现 ...
分类:
其他好文 时间:
2018-04-14 16:26:53
阅读次数:
184
Discription 有一棵以1为根的树,他有n个结点,用1到n编号。第i号点有一个值vi。 现在可以对树进行如下操作: 步骤1:在树中选一个连通块,这个连通块必须包含1这个结点。 步骤2:然后对这个连通块中所有结点的值加1或者减1。 问最少要经过几次操作才能把树中所有结点都变成0。 注意:步骤1 ...
分类:
其他好文 时间:
2018-04-12 15:22:31
阅读次数:
130
一、定义。 1.1 BST 二叉搜索树,也称有序二叉树,排序二叉树,是指一棵空树或者具有下列性质的二叉树: ① 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; ② 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; ③ 任意节点的左、右子树也分别为二叉查找树。 ...
分类:
其他好文 时间:
2018-03-31 22:16:58
阅读次数:
473
①二叉树的遍历是指从根结点开始,按照某种次序依次访问二叉树中的所有结点 ②二叉树遍历方式(所谓前序、中序、后序,是对根结点来说的) 1.前序遍历 2.中序遍历 3.后续遍历 4.层次遍历 前序遍历:1、2、4、8、9、5、10、3、6、7 中序遍历:8、4、9、2、10、5、1、6、3、7 后序遍历 ...
分类:
其他好文 时间:
2018-03-29 14:52:30
阅读次数:
170
//初始化 int father[N]; for(int i=1; i<=N; i++){ father[i] = i; //令father[i]为1也可 } //查找 int findFather(int x){ //由于x在下面的while中会变成根结点,因此先把原来的x先保存下 int a =... ...
分类:
其他好文 时间:
2018-03-21 13:50:13
阅读次数:
108
Floyd算法: 用邻接矩阵保存原图,时间复杂度O(N^3),空间复杂度O(N^2),N为图中节点个数。 一般情况下,被要求解图的大小不超过200个结点,当图使用邻接矩阵表示时更为方便,否则要注意转换。 因为算法完成后,图中所有结点间的最短路径都将被确定,所以其较适用于全源最短路径长度问题。 例5. ...
分类:
其他好文 时间:
2018-03-17 19:47:12
阅读次数:
190
在二叉查找树中:(01) 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;(02) 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;(03) 任意节点的左、右子树也分别为二叉查找树。(04) 没有键值相等的节点(no duplicate nodes)。 在实际应 ...
分类:
其他好文 时间:
2018-03-08 20:20:20
阅读次数:
141
题目描述 Alice和Bob正在一棵树上玩游戏。这棵树有$n$个结点,编号由$1$到$n$。他们一共玩$q$盘游戏。 在第$i$局游戏中,Alice从结点$a_i$出发,Bob从结点$b_i$出发。开始时,除了$a_i$和$b_i$这两个结点外,所有结点都没有染色。结点$a_i$被Alice染色,结 ...
分类:
其他好文 时间:
2018-03-06 17:09:14
阅读次数:
165