二叉树的有关计算

您所在的位置:网站首页 二叉树度为一节点数怎么算 二叉树的有关计算

二叉树的有关计算

2024-07-09 09:35| 来源: 网络整理| 查看: 265

有关概念:https://www.cnblogs.com/schips/p/10630533.html

参考:  https://blog.csdn.net/bojie5744/article/details/30744767

 

计算公式

https://blog.csdn.net/stf1065716904/article/details/80874065

1. n个节点的二叉树一共有((2n)!)/(n! * (n+1)!)种     catalan数,C(n)=(1/(n+1))*((2*n)!/(n!*n!)) 2. n层二叉树的第n层最多为2^(n-1)个3. 二叉树节点计算公式 N = n0+n1+n2,度为0的叶子节点比度为2的节点数多一个。N=1*n1+2*n2+14. 对任何一棵二叉树T,如果其终端节点数为n0,度为2的节点数为n2,则n0=n2+15. 具有n个节点的完全二叉树的深度为log2(n) + 16. B-树,除叶子与根节点以外的任意结点的分支数介于[m/2,m](取上整)7. 具有n 个结点的完全二叉树的深度为[log2n]+1

 

 二叉树的度计算有一个计算二叉树节点的公式,相信很多人都知道:  度为0的节点数为度为2的节点数加1,即n0=n2+1,知道这个公式,相关题目就可以轻松解决;

下面来讨论下如何得出这个公式的:设:  k:总度数  k+1:总节点数  n0:度为0的节点  n1:度为1的节点  n2:度为二的节点

根据二叉树中度和节点的守衡原理,可列出以下一组方程:k=n2*2+n1;k+1=n2+n1+n0;将上面两式相减得到:n0=n2+1;

例【1】:已知767个节点的完全二叉树,求其叶子节点个数?解析:

注意:

  对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。

  也就是说,如果完全二叉树有度为1的结点,那么也只有1或者0两种情况

  n0=n2+1;  n=n0+n1+n2;  由上面,消掉n2得到:

  n=2n0+n1-1;

  由于完全二叉树度为1的只有0个或1个两种情况,所以,将0或1带入上面公式,整理后得:  n0=(n+1)/2或者n0=n/2;  看看n是否能被2整除,能则用n0=n/2。否则用n0=(n+1)/2  既:叶子节点为n0=(n+1)/2=384

 

例【2】:已知完全二叉树的结点有700个,求其叶子结点的个数?解析:    完全二叉树,要求是除了最下面一层节点和部分倒数第二层节点外,所有节点均是满树。  因此我们可以得到以下满树的规律:   第一层:根节点 1个,即2^0个   

  第二层:两个,即:2^1个

  第三层:4个,即:2^2个      ....     也就是说,n层满树的节点个数是: (根据等比数列求和公式)

等比数列前n项之和

①当q≠1时, ②当q=1时, 在等比数列中,首项a1与公比q都不为零.

注意:上述公式中a^n表示A的n次方

(也可以通过计算二进制中,从最低位开始的n位连续被置一的值求出前n项和)

      2^0+2^1+2^2+...+2^(n-1)=2^n-1    所以:700个节点的完全二叉树最多10层    即第1-9层是满树,共有:511个节点    也就是说:第十层还有:700-511=189个节点,这些节点全叶子节点    于是完全二叉树,最后一层最多有一个节点不满,    所以第9层左边的95个节点是非叶子节点,    因此第九层有:256-95=161个有叶子节点    第十层有:189个叶子节点    因此共有:189+161=350个叶子节点

总结以上,我们可以看到,在完全二叉树中, 叶子节点的个数是:

  [(n+1)/2](n为奇数)

  或

   [n/2](n为偶数)

 

某二叉树中有15个度为1的结点,16个度为2的结点,则该二叉树中总的结点数为( )。

A.32 B.46 C.48 D.49 参考答案:C 解题思路:在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。对任何一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个。由16个度为2的结点可知叶子结点个数为17,则结点结点总数为16+17+15=48,C选项正确。 n0 = n2 +1;   n = n0 + n1 + n2

 

 

 

 

 

 

 

1.二叉树的深度和层数其实是一样的。

2.任意一棵树的总结点数等于总分支数+1

3.叶子结点也称叶子,度为0的结点。

4.一个深度为n的满二叉树的总结点数为  (2^(n-1))  -1(其实得出这个结论画个图就知道了,不难)

5.深度为h的完全二叉树至少有2^(h-1)个结点,最多有(2^h)-1个结点。

相关题目:

1.      一棵二叉树第六层(根结点为第一层)的结点数最多为?

             其实这道题很简单,就是2^5=32

 

2.     某二叉树中度为2的结点有18个,则该二叉树中有多少个叶子结点?

         根据总结点数=总分支数+1,设叶子有n个,则有

               18 + n = 18*2 + 1

                       n = 19

 

3.设一棵完全二叉树共有199个结点,那么该二叉树共有个分支结点?

思路就是先求出这个完全二叉树的叶子数,然后用总结点数减去叶子数就是分支结点的数目了。

因为有                               (2^7) - 1



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3