二叉树的五大性质及证明
来源:互联网 发布:程序员鼓励师工资 编辑:程序博客网 时间:2024/04/26 06:50
二叉树(Binary Tree)
定义:一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根结点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。
特点:每个结点至多只有两棵子树(二叉树中不存在度大于2的结点)
五种形态:
1. 性质1
性质1 在二叉树的第 i 层至多有 2^(i -1)个结点。(i>=1)
[用数学归纳法证明]
证明:当i=1时,只有根结点,2^(i -1)=2^0=1。
1) 设:对所有j,i>j>=1,命题成立,即第j层上至多有2^(j-1)个结点。
2) 由归纳假设第i-1层上至多有2^(i-2)个结点。
3) 由于二叉树的每个结点的度至多为2,故在第i层上的最大结点数为第i-1层上的最大结点数的2倍,即2* 2^(i-2)= 2^(i-1)
证毕。
2. 性质2
证明:由性质1可见,深度为k的二叉树的最大结点数为
3. 性质3
性质3 对任何一棵二叉树T, 如果其叶结点数为n0,度为2的结点数为n2,则n0=n2+1。
证明:若度为1的结点有 n1个,总结点个数为n,总边数为e,则根据二叉树的定义,
n = n0 + n1 + n2
e = 2n2 + n1 = n - 1 (除了根节点,每个节点对应一条边 )
因此,有 2n2+ n1 =n0 + n1 + n2- 1
n2= n0 - 1 => n0= n2+ 1
空链域:2n0+ n1 = n0 + n2 +1+ n1 = n+1
4. 性质4
性质4 具有 n (n>=0) 个结点的完全二叉树的深度为+1
证明:设完全二叉树的深度为 h,则根据性质2 和完全二叉树的定义有
2^(h-1)- 1 < n <= 2^(h- 1)或 2^(h-1)<= n < 2^h
取对数 h-1 < log2n <= h,又h是整数,
因此有 h = +1
5. 性质5
性质5 如将一棵有n个结点的完全二叉树自顶向下,同层自左向右连续为结点编号0,1, …, n-1,则有:
1)若i = 0, 则 i 无双亲, 若i > 0, 则 i 的双亲为」(i -1)/2」
2)若2*i+1 < n, 则i 的左子女为 2*i+1,若2*i+2 < n, 则 i 的右子女为2*i+2
3)若结点编号i为偶数,且i != 0,则左兄弟结点i-1.
4)若结点编号i为奇数,且i != n-1,则右兄弟结点为i+1.
5)结点i 所在层次为」log2(i+1) 」
- 二叉树的五大性质及证明
- 二叉树的基本性质及证明
- 二叉树的性质及相关证明
- 二叉树的性质及实现代码 !!!!
- 二叉树的相关概念及性质
- 一:二叉树的性质及创建
- 二叉树的定义及性质
- 二叉树的定义,性质及存储
- 傅里叶变换(CTFT)的性质及证明
- 什么是二叉树?及二叉树的性质
- 二叉树及二叉树的相关性质
- 二叉树的性质
- 二叉树的性质
- 二叉树的性质
- 二叉树的性质
- 二叉树的性质
- 二叉树的性质
- 二叉树的性质
- android stdio快速生成get和set方法
- JS中showModalDialog 详细使用
- Markdown操作手册
- Centos7 静态IP设置
- java用DFA实现脏词过滤以及用FileAlterationListenerAdaptor实现对资源文件修改的动态监听
- 二叉树的五大性质及证明
- 理解 chroot
- 11.Tornado在TCP层里的工作机制---TCP层的实现
- 从指定页插入页眉页脚
- windows GUI开发00 - 前言
- git branch 和 tag的区别
- 20160529整理到几个新的Java容器漏洞
- 二叉树的创建和相关算法
- WebSocket 和 Golang 实现聊天功能