求叶子结点的算法
① 怎么计算C语言的二叉树中的叶子节点数
结点的度是指,该结点的子树的个数,在二叉树中,不存在度大于2的结点。
计算公式:n0=n2+1
n0
是叶子节点的个数
n2
是度为2的结点的个数
n0=n2+1=5+1=6
故二叉树有5个度为2的结点,则该二叉树中的叶子结点数为6。
(1)求叶子结点的算法扩展阅读
叶子结点是离散数学中的概念。一棵树当中没有子结点(即度为0)的结点称为叶子结点,简称“叶子”。
叶子是指度为0的结点,又称为终端结点。
叶子结点
就是度为0的结点
就是没有子结点的结点。
n0:度为0的结点数,n1:度为1的结点
n2:度为2的结点数。
N是总结点
在二叉树中:
n0=n2+1;
N=n0+n1+n2
参考资料:叶子结点_网络
② 二叉树的叶子节点数如何计算
结点的度是指,该结点的子树的个数,在二叉树中,不存在度大于2的结点。
计算公式:n0=n2+1
n0 是叶子节点的个数
n2 是度为2的结点的个数
n0=n2+1=5+1=6
故二叉树有5个度为2的结点,则该二叉树中的叶子结点数为6。
(2)求叶子结点的算法扩展阅读
叶子结点是离散数学中的概念。一棵树当中没有子结点(即度为0)的结点称为叶子结点,简称“叶子”。 叶子是指度为0的结点,又称为终端结点。
叶子结点 就是度为0的结点 就是没有子结点的结点。
n0:度为0的结点数,n1:度为1的结点 n2:度为2的结点数。 N是总结点
在二叉树中:
n0=n2+1;
N=n0+n1+n2
参考资料:叶子结点_网络
③ 完全二叉树中叶子节点的算法
noip中经常会遇到求完全二叉树叶子结点的问题,比如第十一届全国青少年信息学奥林匹克联赛初赛试题的第四题:完全二叉树的结点个数为4 *N+ 3 ,则它的叶结点个数为()。
A. 2 *N B. 2 *N- 1 C. 2 *N+ 1 D. 2 *N- 2 E. 2 *N+ 2
结论:如果一棵具有n个结点的深度为k的完全二叉树,其叶子结点数和总结点数有这样的关系:n(叶子)=(n总+1)/2,由上所知,我们可以判断这道题的 叶结点个数为(4 *N+ 3+1)/2=2 *N+ 2.
14(第十二届).高度为n的均衡的二叉树是指:如果去掉叶结点及相应的树枝,它应该是高度为n-1的满二叉树。在这里,树高等于叶结点的最大深度,根结点的深度为0,如果某个均衡的二叉树共有2381个结点,则该树的树高为()。
A. 10 B. 11 C. 12 D. 13
均衡二叉树就是:任意两个度不为2的节点的深度之差不大于1
例如:
1
/ \
2 3
\ /
4 5
是均衡二叉树
而
1
/ \
2 3
\ / \
4 5 6
/
7
就不是,2和7的深度差2.
因为2^11 = 2048;所以一颗满二叉树从深度为0(根节点)到深度10的总节点数是2047,剩下2381-2047 = 334个节点,这剩下的节点的深度都是11。
所以答案为B
④ 完全二叉树的叶子节点数公式是什么
完全二叉树的叶子节点数公式为:
设叶子节点数为n0, 度为1的节点数为n1,度为2的节点数为n2,总节点为n。
1、当n为奇数时(即度为1的节点为0个),n0= (n+1)/2。
2、当n为偶数(即度为1的节点为1个), n0= n/2。
n1,n2,都可以求。
特殊类型:
1、满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。
2、完全二叉树:深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1到n的结点一一对应时,称为完全二叉树。
3、完全二叉树的特点是叶子结点只可能出现在层序最大的两层上,并且某个结点的左分支下子孙的最大层序与右分支下子孙的最大层序相等或大1。
相关术语:
1、结点:包含一个数据元素及若干指向子树分支的信息。
2、结点的度:一个结点拥有子树的数目称为结点的度。
3、叶子结点:也称为终端结点,没有子树的结点或者度为零的结点。
4、结点的层次:从根结点开始,假设根结点为第1层,根结点的子节点为第2层,依此类推,如果某一个结点位于第L层,则其子节点位于第L+1层。
5、树的深度:也称为树的高度,树中所有结点的层次最大值称为树的深度。
以上内容参考 网络-二叉树
⑤ 求统计二叉树叶子结点数的递归算法
···cpp
由于不知道你的存储方式,假设你是指针存,用孩子兄弟表示法。
(伪)代码:
structnode{
data{
...
}val;
node*fchild,*brother;
}
voidgetnum(nodex){
if(x.fchild==nu)ans++;
else{
getnum(*x.fchild);
getnum(*x.brother);
}
}
就这样
⑥ 二叉树的叶子节点数如何计算
二叉树的叶子节点数:没有子树的结点是叶子结点。结点的度是指,该结点的子树的个数,在二叉树中,不存在度大于2的结点。
计算公式:n0=n2+1
n0
是叶子节点的个数
n2
是度为2的结点的个数
n0=n2+1=5+1=6
故二叉树有5个度为2的结点,则该二叉树中的叶子结点数为6。