二叉树的有关计算 |
您所在的位置:网站首页 › 二叉树度为一节点数怎么算 › 二叉树的有关计算 |
有关概念: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 |