仙桃建设网站旺道seo营销软件
二叉树的性质和证明
- 前言
- 1.二叉树的概念和结构
- 特殊的二叉树:
- 二叉树的性质
前言
本篇博客主要讲述的是有关二叉树的一些概念,性质以及部分性质的相关证明,如果大伙发现了啥错误,可以在评论区指出😘😘
1.二叉树的概念和结构
一棵二叉树是节点的一个有限集合,该集合:
- 或者为空
2.由一个根节点加上两棵别称为左子树和右子树的二叉树组成。
如下图所示:
特殊的二叉树:
- 满二叉树:一个二叉树,每一层的节点都达到最大值,这个二叉树就是满二叉树。也就是说,如果一个二叉树的层次为k,且结点总数是2^k-1,这棵树就是满二叉树。
由于每层都是满的,所以节点总数:
2^0 + 2^0 + 2^1 + ······+ 2^(k-1) = 2^k - 1
- **完全二叉树:**完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深度为k的,有n个节点的二叉树,当且仅当其每个节点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。 要注意的是满二叉树是一种特殊的完全二叉树。(通俗的来讲,就是当二叉树的前k-1层为满二叉树,最后一层的节点连续排布时就是完全二叉树)
从该定义同时也可以知道,满二叉树是一个特殊的完全二叉树。
如下图所示即是满二叉树:
二叉树的性质
- 若规定根节点的层数是1,则一颗非空二叉树第i层上最多有2^(i-1)个结点。(根据二叉树的结构不难看出)
- 若规定根结点的层数为1,则深度为h的二叉树的最大结点数是2h−12^h-12h−1.
上面在讲解满二叉树时已经给出证明。
- 对于任何一棵二叉树,如果度为0其叶节点个数为n0n_0n0,度为2的分支结点个数为n2n_2n2,则有n0n_0n0 = n2n_2n2 + 。
这里提供两种方法进行帮助理解:
1.关系推导:
(1)首先,对一个只有根节点的树添加一个结点,此时度为0的结点数不点,也就是增加一个度为1的结点,并不影响度为0的结点和度为2的结点个数。
(2)在此之后,每次多一个度为2的结点数,度为0的结点数也会增加一个,所以度为0的结点数总是比度为2的结点数多1。
2. 数学推导
已知一棵二叉树的结点总数为
SSS = n0n_0n0+n1n_1n1+n2n_2n2
SSS = n2∗2n_2*2n2∗2 + n1∗1n_1*1n1∗1 + n0∗0n_0*0n0∗0
联立两式即可得出n0n_0n0 = n2+1n_2+1n2+1
- 若规定根结点的层数为1,具有n个结点的满二叉树的深度,h=log2(n+1)log_2(n+1)log2(n+1)。
该性质的证明即是结点总个数的逆推导。
- 对于具有n个结点的完全二叉树,如果按照从上至下从左至右的数组顺序对所有结点从0开始编号,则对于序号为i的结点有:
- 若i>0,i位置结点的双亲序号:(i-1)/2;i=0,i为根结点编号,无双亲结点
- 若2i+1<n,左孩子序号:2i+1,2i+1>=n否则无左孩子
- 若2i+2<n,右孩子序号:2i+2,2i+2>=n否则无右孩子