二叉树的定义如下:树要么为空,要么由根结点、左子树、右子树组成,而左子树和右子树分别是一颗二叉树。注意,在计算机中,树一般是“倒置”的,即根在上,叶子在下。 而树的定义比二叉树区别在于有很多的子树。 但是不管是二叉树还是树,每个非根结点都有一个父节点。 简单的二叉树实现代码(C++) 二叉树深度的求 ...
分类:
其他好文 时间:
2017-10-14 18:28:38
阅读次数:
165
书上习题有要求用递归和迭代实现一个二分查找算法,随即写了一个,但对于找不到的部分没怎么处理...感觉不是很好处理。 示例代码: 因为二分查找算法思想就像一颗完全二叉树,深度depth = lg(n)+1,n为问题规模,递归子问题为2,因此以上两段代码的时间复杂度都为O(lgn)。 ...
分类:
其他好文 时间:
2017-09-08 13:33:15
阅读次数:
167
二叉搜索树的深度与搜索效率 我们在树, 二叉树, 二叉搜索树中提到,一个有n个节点的二叉树,它的最小深度为log(n),最大深度为n。比如下面两个二叉树: 深度为n的二叉树 深度为log(n)的二叉树 这两个二叉树同时也是二叉搜索树(参考树, 二叉树, 二叉搜索树)。注意,log以2为基底。log( ...
分类:
其他好文 时间:
2017-08-29 14:30:02
阅读次数:
114
一、用Integer为Comparable接口实例化 为了简化代码,直接使用Integer类,因为Integer类;已经实现了Comparable接口。 二、二叉树的元素添加、中序遍历、深度 ...
分类:
其他好文 时间:
2017-08-15 16:03:25
阅读次数:
212
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest l ...
分类:
其他好文 时间:
2017-05-13 16:08:33
阅读次数:
187
描述 给定一棵二叉树,求该二叉树的深度 二叉树深度定义:从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的节点个数为树的深度 输入第一行是一个整数n,表示二叉树的结点个数。二叉树结点编号从1到n,根结点为1,n <= 10接下来有n行,依次对应二叉树的n个节点。每行有两个整数 ...
分类:
其他好文 时间:
2017-04-30 18:44:07
阅读次数:
205
1.二叉树第i层至多有2^(i-1)个结点(i>=1)。 2.深度为k的二叉树上,至多含2^k-1个结点(k>=1) 3.n0 = n2 + 1(度) 4.满二叉树:深度为k且含有2^k-1个结点的树。 5.完全二叉树:除最后一层外,每一层上的节点数均达到最大值;在最后一层上只缺少右边的若干结点。 ...
分类:
其他好文 时间:
2017-04-17 18:07:03
阅读次数:
168
一、二叉树深度优先遍历 只介绍先序遍历: (1) 第一种方法是使用stack的结构 (2) 主要要理解后面的分治法 二、分治法 三个例子: 归并排序 快速排序 大多数的二叉树问题 归并排序和快速排队都是典型的分治法。 归并排序:强调先局部有序,再归并为整体有序. 最差时间复杂度和平均复杂度都是log ...
分类:
其他好文 时间:
2017-02-06 21:59:30
阅读次数:
255
题意:二叉树按层次遍历从1开始标号,所有叶子结点深度相同,每个结点开关初始状态皆为关闭,小球从根结点开始下落(小球落在结点开关上会使结点开关状态改变),若结点开关关闭,则小球往左走,否则往右走,给定二叉树深度D,求第I个小球所落到的叶子结点编号。 分析:对于每一个结点,若小球当前编号为k, k为奇数 ...
分类:
其他好文 时间:
2017-01-07 21:16:20
阅读次数:
269