publicclassBinarytreedept{
/*
*输出二叉树最小深度
*核心思想:根节点到达最近的叶子节点的路径长度。
*1、当根为空时,输出0。
*2、当左子树为空时,输出右子树深度+1。
*3、当右子树为空时,输出左子树深度+1。
*4、以上条件都不满足时,输出min(左子树深度,右子树深度)+1..
分类:
其他好文 时间:
2016-10-13 15:13:48
阅读次数:
163
二叉树的创建代码==>C++ 创建和遍历二叉树 深度优先遍历:是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。 广度优先遍历:是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。 ...
分类:
编程语言 时间:
2016-09-17 01:51:57
阅读次数:
280
题目链接: http://codeforces.com/problemset/problem/696/A 题目大意: 一个满二叉树,深度无限,节点顺序编号,k的儿子是k+k和k+k+1,一开始树上的边权都为0 N(N<=1000)个操作,操作两种,1是从u到v的路径上的所有边权+w,2是求u到v的边 ...
分类:
其他好文 时间:
2016-08-16 00:12:16
阅读次数:
171
【题目】输入一棵二叉树,求该树的深度。 * 从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 ...
分类:
其他好文 时间:
2016-06-21 22:12:58
阅读次数:
171
题目:输入一棵二叉树的结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。
上图中的二叉树就是一棵平衡二叉树。
分析:有了求二叉树深度的思路后,我们很快就能找到求解该问题的方法,就是从根结点开始开始判断其左右子结点的深度之差是否为1。如果从根结点开始到叶子结点的每一个结点的左右子树的深度相差都不超过1,则说明该二叉树是平衡二叉树。但是其...
分类:
其他好文 时间:
2016-06-21 07:14:27
阅读次数:
201
对于一颗二叉树,深度优先搜索(Depth First Search)是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。以上面二叉树为例,深度优先搜索的顺序 为:ABDECFG。怎么实现这个顺序呢 ?深度优先搜索二叉树是先访问根结点,然后遍历左子树接着是遍历右子树,因此我们可以利用堆栈的先进后出的特 ...
分类:
其他好文 时间:
2016-05-14 18:32:39
阅读次数:
295
二叉树概念在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(leftsubtree)和“右子树”(rightsubtree)。二叉树常被用于实现二叉查找树和二叉堆。二
叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序..
分类:
其他好文 时间:
2016-05-03 02:07:11
阅读次数:
252
二叉树的性质和常用操作代码集合性质:
二叉树的性质和常用代码操作集合
性质1:在二叉树的第i层上至多有2^i-1个结点
性质2:深度为k的二叉树至多有2^k - 1个结点
性质3:对任意一棵二叉树T,若终端结点数为n0,而其度数为2的结点数为n2,则n0 = n2 + 1
满二叉树:深度为k且有2^-1个结点的树
完全二叉树:深度为k,结点数为n的二叉树,如果其结点1...
分类:
其他好文 时间:
2016-04-22 20:26:52
阅读次数:
169
二叉树的基本操作: 包括创建二叉树,遍历二叉树(先序、中序和后序),求二叉树深度,求二叉树结点数,求叶子结点数。其中创建二叉树是先序创建的,即输入的时候要按二叉树先序输入。废话不说直接看代码 1 #include 2 using namespace std; 3 4 struct BiT...
分类:
其他好文 时间:
2016-01-24 12:58:24
阅读次数:
177