关闭

非空二叉树的一个有趣的性质:n0 = n2 + 1

435人阅读 评论(0) 收藏 举报
分类:

对任何非空二叉树T,若n0 表示叶结点的个数、n2 表示度为2 的非叶结点的个数,那么两者满足关系n0 = n2 + 1。

这个性质很有意思,下面我们来证明它。

证明:首先,假设该二叉树有N 个节点,那么它会有多少条边呢?答案是N - 1,这是因为除了根节点,其余的每个节点都有且只有一个父节点,那么这N 个节点恰好为树贡献了N - 1 条边。这是从下往上的思考,而从上往下(从树根到叶节点)的思考,容易得到每个节点的度数和 0*n0 + 1*n1 + 2*n2 即为边的个数。

因此,我们有等式 N - 1 = n1 + 2*n2,把N 用n0 + n1 + n2 替换,得到n0 + n1 + n2 - 1 = n1 + 2*n2,于是有

    n0 = n2 + 1。命题得证。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

二叉树(1)——二叉树的定义和递归实现

定义 最多有两棵子树的有序树,称为二叉树。二叉树是一种特殊的树。 递归定义:二叉树是n(n>=0)个有限结点构成的集合。N=0称为空二叉树;n>0的二叉树由一个根结点和两互不相交的,分别称为左子树...
  • luoweifu
  • luoweifu
  • 2013-06-11 23:27
  • 11513

算法导论第十二(12)章 二叉查找树

12.1 二叉查找树
  • z84616995z
  • z84616995z
  • 2014-06-06 15:11
  • 4511

数据结构学习之二叉树(性质总结)

1、二叉树结点编号在一棵n个结点的完全二叉树中,从树根起,自上层到下层,每层从左至右,给所有结点编号,能得到一个反映整个二叉树结构的线性序列。 编号特点 2、二叉树性质
  • xy010902100449
  • xy010902100449
  • 2015-06-22 10:13
  • 2494

证明:一个有n个结点的非空二叉树的高度至少为lgn

利用归纳法证明:一个有n个结点的非空二叉树的高度至少为 证明: 当n=1时,只有一个结点的二叉树的高度为0,成立。 令有x个结点的二叉树的高度为h(x) 假设当n=k,k>=2...
  • WangJiSongGericy
  • WangJiSongGericy
  • 2013-11-10 11:58
  • 756

设计一个算法,求非空二叉树中指定的第k层(k>1)的叶子节点的个数

思想:采用基于层序遍历的方法。用level扫描各层节点,若某一层的节点出队后,rear指向该层中最右节点,则将rear赋值给last(对于第一层,last=1).在出队时,若front=last,表示...
  • wuruiaoxue
  • wuruiaoxue
  • 2015-07-06 01:03
  • 1321

设计一个算法,求非空二叉树b的宽度(即具有节点最多的那一层的节点个数)

思想:假设二叉树采用二叉链存储结构,采用层次遍历的方法求出所有节点的层次,并将所有节点和对应的层次放在一个队列中。然后通过扫描队列求出各层的节点总数,最大的层节点总数即为二叉树的宽度。对应的算法如下:...
  • wuruiaoxue
  • wuruiaoxue
  • 2015-07-05 16:42
  • 1552

二叉树-求{0,1....n-1}的非空子集

今天有同学问了下我怎么编程实现求集合{0,1….n-1}的非空子集合,我发现这恰好是一棵满二叉树的题,可以用二叉树求解。 代码如下: #include using namespace std; ...
  • Move_now
  • Move_now
  • 2016-10-09 18:13
  • 289

算法导论6.3-3 证明完全二叉树高度为h的结点个数上限「n/2^(h+1)」

这个问题可以使用以下几种方法进行证明:  (1) 使用结点高度的定义 假设某结点序号为i,则其最长路径为i, i*2, i*2^2,....,i*2^h,而且I*2^(h+1) > n,于是有不等...
  • wdq347
  • wdq347
  • 2013-04-19 10:40
  • 2843

二叉树总节点数为N个,它的叶节点数是多少呢?度为2的节点数呢?度为1的节点数呢?有多少个节点有左孩子?有多少个孩子有右孩子?

二叉树的性质
  • dangzhangjing97
  • dangzhangjing97
  • 2017-12-29 09:53
  • 126

一棵排序二叉树,令 f=(最大值+最小值)/2,设计一个算法,找出距离f值最近、大于f值的结点。复杂度如果是O(n2)则不得分。

#include "stdafx.h" #include #include #include using namespace std; struct Nod...
  • zhangfei2018
  • zhangfei2018
  • 2012-08-24 14:43
  • 1850
    个人资料
    • 访问:766158次
    • 积分:15844
    • 等级:
    • 排名:第794名
    • 原创:790篇
    • 转载:202篇
    • 译文:0篇
    • 评论:72条
    博客专栏
    文章分类
    最新评论