一、基本概念
二叉树是n(n>=0)个结点的有限集合:
1.或者为空二叉树,即n=0
2.或者由一个根节点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树有分别是一颗二叉树
3.特点:
①每个结点最多有两棵子树
②左右子树不能颠倒(二叉树是有序树)注意区分:度为2的有序树
二、几种特殊的二叉树
一、满二叉树
一棵高度为h,且含有2的h次方-1个结点的二叉树
也就是每个二叉树的结点,都有两个孩子节点
特点:
1.只有最后一层有叶子节点
2.不存在度为1得结点
3.按层序从1开始从左向右编号,节点为i的左孩子为2i,右孩为2i+1;结点i的父节点为[i/2](如果有的话)
二、完全二叉树(在满二叉树的基础上可去掉若干个)
当且仅当其每个结点斗鱼高度为h的满二叉树中编号为1~n的结点一一对应时,称为完全二叉树
特点:
1.只有最后两层可能有叶子节点
2.最多只有一个度为1的结点
3.同上的3
4.i<=[n/2]为分支节点,i>[n/2]为叶子节点
【注】如果在完全二叉树中,某个节点只有一个孩子,那么一定是左孩子
三、二叉排序树(可用于元素的排序、搜索)
一颗二叉树或者是空二叉树,或者是具有如下性质的二叉树:
1.左子树上所有结点的关键字均小于根节点的关键字
2.右子树上所有结点的关键字均大于根节点的关键字
3.左子树和右子树又各是一颗二叉排序树
四、平衡二叉树(能有更高的搜索效率)
树上任一结点的左子树和右子树的深度之差不超过1
【PS:】树的高度(深度):--总共多少层
三、常考性质
常见考点一:设非空二叉树中度为0、1、2的节点个数分别为n0、n1、n2,则:(叶子节点比二分支节点多一个)
假设树中总结点数为n,则:
①
n
=
n
0
+
n
1
+
n
2
① n=n_0+n_1+n_2
①n=n0+n1+n2
② n = 1 ∗ n 1 + 2 ∗ n 2 + 1 ②n=1*n_1+2*n_2+1 ②n=1∗n1+2∗n2+1
② − ① : n 0 = n 2 + 1 ②-①:n_0=n_2+1 ②−①:n0=n2+1
②树的结点数=总度数+1
常见考点二:
①
二
叉
树
第
i
层
至
多
有
2
i
−
1
个
结
点
(
i
≥
1
)
①二叉树第i层至多有2^{i-1}个结点(i\geq1)
①二叉树第i层至多有2i−1个结点(i≥1)
② m 叉 树 第 i 层 至 多 有 m i − 1 个 结 点 ( i ≥ 1 ) ②m叉树第i层至多有m^{i-1}个结点(i\geq1) ②m叉树第i层至多有mi−1个结点(i≥1)
常见考点三:
①
高
度
为
h
的
二
叉
树
至
多
有
2
h
−
1
个
结
点
(
满
二
叉
树
)
①高度为h的二叉树至多有2^h-1个结点(满二叉树)
①高度为h的二叉树至多有2h−1个结点(满二叉树)
② 高 度 为 h 的 m 叉 树 至 多 有 m h − 1 m − 1 个 结 点 ②高度为h的m叉树至多有\frac{m^h-1}{m-1}个结点 ②高度为h的m叉树至多有m−1mh−1个结点
等 比 数 列 求 和 公 式 : S n = a 1 ( 1 − q n ) 1 − q 等比数列求和公式:S_n=\frac{a_1(1-q^n)}{1-q} 等比数列求和公式:Sn=1−qa1(1−qn)
四、完全二叉树常考性质
常见考点一:
具
有
n
个
(
n
>
0
)
结
点
的
完
全
二
叉
树
的
高
度
h
为
:
[
l
o
g
2
(
n
+
1
)
]
向
上
取
整
;
或
向
下
取
整
[
l
o
g
2
n
]
+
1
具有n个(n>0)结点的完全二叉树的高度h为:[log_2(n+1)]向上取整;或向下取整[log_2n]+1
具有n个(n>0)结点的完全二叉树的高度h为:[log2(n+1)]向上取整;或向下取整[log2n]+1
推 理 过 程 : 高 度 为 h 的 满 二 叉 树 共 有 2 h − 1 个 结 点 ; 高 度 为 h − 1 的 满 二 叉 树 共 有 2 h − 1 − 1 个 结 点 , 推理过程:高度为h的满二叉树共有2^h-1个结点;高度为h-1的满二叉树共有2^{h-1}-1个结点, 推理过程:高度为h的满二叉树共有2h−1个结点;高度为h−1的满二叉树共有2h−1−1个结点,
所 以 : 结 点 数 n : 2 h − 1 − 1 < n ≤ 2 h − 1 = = > 2 h − 1 < n + 1 ≤ 2 h = = > h − 1 < l o g 2 ( n + 1 ) ≤ h 所以:结点数n:2^{h-1}-1<n\leq2^h-1==>2^{h-1}<n+1\leq2^h==>h-1<log_2(n+1)\leq{h} 所以:结点数n:2h−1−1<n≤2h−1==>2h−1<n+1≤2h==>h−1<log2(n+1)≤h
整 理 可 得 h = [ l o g 2 ( n + 1 ) ] , 向 上 取 整 整理可得h=[log_2(n+1)],向上取整 整理可得h=[log2(n+1)],向上取整
【注】
第
i
个
结
点
所
在
的
层
次
为
:
[
l
o
g
2
(
n
+
1
)
]
向
上
取
整
;
或
向
下
取
整
[
l
o
g
2
n
]
+
1
第i个结点所在的层次为:[log_2(n+1)]向上取整;或向下取整[log_2n]+1
第i个结点所在的层次为:[log2(n+1)]向上取整;或向下取整[log2n]+1
常见考点二:
【叶子结点永远比双分支结点多一个】
对
于
完
全
二
叉
树
,
可
以
由
结
点
数
n
推
出
度
为
0
、
1
、
2
的
结
点
的
个
数
为
n
0
、
n
1
、
n
2
,
完
全
二
叉
树
最
多
只
有
一
个
度
为
1
的
结
点
对于完全二叉树,可以由结点数n推出度为0、1、2的 结点的个数为n_0、n_1、n_2,完全二叉树最多只有一个度为1的结点
对于完全二叉树,可以由结点数n推出度为0、1、2的结点的个数为n0、n1、n2,完全二叉树最多只有一个度为1的结点
即 : n 1 = 0 或 1 ; n 0 = n 2 + 1 − − − − − > n 0 + n 2 一 定 是 奇 数 , 因 为 : n 0 + n 2 = 2 ∗ n 2 + 1 即:n_1=0或1;n_0=n_2+1----->n_0+n_2一定是奇数,因为:n_0+n_2=2*n_2+1 即:n1=0或1;n0=n2+1−−−−−>n0+n2一定是奇数,因为:n0+n2=2∗n2+1
若 完 全 二 叉 树 有 2 k 个 ( 偶 数 ) 结 点 , 则 必 有 : n 1 = 1 ; n 0 = k ; n 2 = k − 1 若完全二叉树有2k个(偶数)结点,则必有:n_1=1;n_0=k;n_2=k-1 若完全二叉树有2k个(偶数)结点,则必有:n1=1;n0=k;n2=k−1
若 完 全 二 叉 树 有 2 k − 1 个 ( 奇 数 ) 结 点 , 则 必 有 : n 1 = 0 ; n 0 = k ; n 2 = k − 1 若完全二叉树有2k-1个(奇数)结点,则必有:n_1=0;n_0=k;n_2=k-1 若完全二叉树有2k−1个(奇数)结点,则必有:n1=0;n0=k;n2=k−1
常考点三:
若完全二叉树有n个结点,则:
1.判断i是否有左孩子?
2
i
≤
n
2i\leq{n}
2i≤n
2.判断i是否有右孩子?
2
i
+
1
≤
n
2i+1\leq{n}
2i+1≤n
3.判断i是否是叶子/分支节点?
i
>
向
下
取
整
[
n
2
]
?
i>向下取整[\frac{n}{2}]?
i>向下取整[2n]?