要想弄清楚二叉树的性质,我们就要先理解什么是二叉树。
满足以下两个条件的树就是二叉树:
- 本身是有序树;
- 树中包含的各个结点的度不能超过 2,即只能是 0、1 或者 2
接下来我们来看二叉树的性质:
性质1:在二叉树的第 i 层上至多有 个结点(i >= 1)
证明: 因为是 至多 所以我们就画一个最大值,即除了叶子结点,每个结点的度都为2
相信找规律大家都会把,从上图中,不难得出 每层上最多的结点数 与 层数的关系,即
当然这个规律也是和二叉树本身有关的,因为二叉树最多一个结点有2个度,那么在最大值的情况下,每增加一个父结点就会多2个子结点 ,所以除了根节点,其他层的结点都是偶数(即与2的倍数有关)。 最大值都求出来了,那其他情况每层的结点数就一定是 小于等于最大值的.
性质2:深度为k的二叉树至多有 个结点(k>=1)
证明:由性质1可知,深度为k的二叉树的最大结点数为
性质3:对任何一棵二叉树 T,若其终端结点数为 n0 ,度数为 2 的结点数为 n2, 则 n0 = n2 + 1
证明:设 n1 为度为1的结点数, n2 为度为2的结点数, 同理 n0 为度为0的结点数.
求二叉树的结点数的方法有两种:
方法一: 所有结点加起来等于总结点 即 n1 + n2 + n0 = n
方法二: 所有孩子结点加根节点等于总结点: n1 + 2n2 + 1 = n
将二者相减 最后 得出 n0 = n2 + 1
性质4:具有 n 个结点的完全二叉树的深度为 ⌊logn⌋+1
证明:假设二叉树的深度为 k,则根据完全二叉树的定义得知,它的前 k-1 层是深度为 k-1 的满二叉树,共有 个结点。由于二叉树深度为 k,所以第 k 层上还有结点,因此该二叉树的结点数 n > 。 再由性质2可知 n <= 所以得出:
因为对于 完全二叉树而言,最后一层最左边至少有一个结点,所以推出:
三项取对数后得:
因为 k 为整数,所以有:
k = ⌊logn⌋+1
标签:结点,二叉树,深度,n0,n2,性质 来源: https://blog.csdn.net/m0_53620413/article/details/120900798
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。