二叉树 - 定义及数学性质
来源:互联网 发布:网络语除草是什么意思 编辑:程序博客网 时间:2024/05/29 19:40
定义
满二叉树:每个内节点都有两个孩子。
完全二叉树:除了最后一层叶子外的二叉树是满二叉树,最后一层叶子都连续地集中在最左边。
平衡二叉树:树的两个子树的高度差不超过1。
赫夫曼树:带路径权值的树,权值越高的越靠近根。
高度:高度不包括根结点,及如果根结点无左右子树,则高度为0。
数学性质
性质一:高度为h的二叉树至多有2h个叶子结点
证明略。
性质二:高度为h≥0的二叉树至少有h+1个结点
如果要使高度为定值的二叉树的结点数最少,则该二叉树的每个结点只有一个子树,即每层只有一个结点,共h个,再加上根结点,共h+1个,所以至少有h+1个结点。
性质三:高度不超过h(≥0)的二叉树至多有2h+1-1个结点
证明:
满二叉树结点最多,所以证明满二叉树是否满足该性质。
当h=0时,只有根结点,即结点数为1;
假设h=k时,结点数为2k+1-1;
则当h=k+1时,由于比高度为k的二叉树多了一层叶子,根据性质一,第k+1层最多有个2k+1叶子,所以共有2k+1+2k+1-1=2(k+1)+1-1个结点;
证毕。
性质四:含有n≥1个结点的二叉树的高度至多为n-1
由性质二可得出。
性质五:含有n≥1个结点的二叉树的高度至少为logn,因此其高度为Ω(logn)
根据性质三可得出。
满二叉树
性质一:高度为h的满二叉树,共有2h+1-1个结点
证明:
结点共有1+2+4+...+2h = 2h+1-1
性质二:共有2h个叶子
性质三:共有2h-1个内结点,内结点个数比叶子少1
证明略。
完全二叉树
完全二叉树是一个比较特殊的二叉树,有着很多性质。
我们从树根起,自上层到下层,逐层从左到右给二叉树的所有结点编号,编号从1开始,即根结点编号为1。
性质一:第h层的从左到右第k个结点的编号为2h+k-1
该完全二叉树是由高为h-1的满二叉树和第h层的k个叶子组成,h-1的满二叉树共有2h-1个结点,所以,h层第k个结点的编号为2h+k-1。
性质二:叶子个数或者和内结点个数相等或者多1
高度为h的完全二叉树是由高度为h-1的满二叉树和k个叶子组成,由满二叉树的性质得出,叶子数比内结点多1。
我们通过给高为h-1的满二叉树增加叶子来得到完全二叉树,当我们给左边第一个叶子增加1个结点时,该叶子变为了内结点,而增加的结点是叶子,可以得出,叶子数没变,而内结点数增加了一个,此时,内结点数和叶子数一样;再增加一个结点,可以得出,叶子数增加了一个,而内结点数不变,所以此时,叶子数比内结点数多1。按照同样的步骤依次将剩余的叶子添加后,该性质是不变的。
性质三:通过本结点的编号可以快速得到父结点、左右孩子的编号
int parent(int i){
return i>>1;//i/2
}
int left(int i){
return i<<1;//i*2
}
int right(int i){
return (i<<1) + 1;//i*2+1
}
- 二叉树 - 定义及数学性质
- 二叉树的定义及性质
- 二叉树的定义,性质及存储
- 二叉树数学性质
- 二叉树的数学性质
- 二叉树中的数学性质
- 二叉树(1)——定义,性质及结构
- 二叉树的定义、性质及常见题
- 二叉树的定义、性质
- 二叉树:性质及遍历
- 二叉树基本概念及性质
- 初探数据结构之“树”的定义和二叉树定义及性质
- 二叉树的定义与性质
- 二叉树的定义、性质、存储
- 二叉树的定义、性质、存储
- 二叉树的定义、性质、存储
- 二叉树的定义、性质、存储
- 二叉树的定义、性质、存储
- Spring IoC 容器概述
- Openfire与XMPP协议
- TVP5158的多路复用技术
- Notes on Programming in C
- UINavigationItem表示UINavigationBar中的控件
- 二叉树 - 定义及数学性质
- event.charCode, event.keycode和event.which
- GetVolumeInformation获取磁盘信息与DeviceIoControl获取硬盘信息
- CakePHP 2.x CookBook 中文版 第七章 模型 之 数据校验
- cortex-m3寄存器描述
- 即时通讯开发平台音视频SDK
- DOM解析器(二)
- 那个大神需要个打杂的(C++方面),联系小弟,最近闲,无偿服务,只求学个一招半式(有基础)。
- 关于Java(jxl)操作Excel一些设置的问题。。。。