计算机⼆叉树节点计算公式,⼆叉树节点数该怎么计算?有⼏
种算法?二叉树公式
每⼀棵⼆叉树中都有左右两棵⼦树,⼦树中⼜有⽆数节点,那你们知道⼦树中的节点该怎么计算吗?快来跟⼩编了解⼀下吧。
⼆叉树算法概念
对于任何⼀棵⼆叉树来说,其叶⼦结点的数⽬为n0,且其度数为2的结点数n2,则n0=n2+1.
证明:对于此⼆叉树:
设其度数为1的结点数为n1. 从下往上看,每个结点都会有⼀个边朝上,除了根结点,则边总数为:N=n0+n1+n2-1 ①
从上往下看,度数为2的结点有两个边,度数为1的结点有1个边,度数为0的结点有0个边,则边总数为:
N=0*n0+1*n1+2*n2 ②
联系① ②,得:n0=n2+1
⼆叉树的叶⼦节点数含义:没有⼦树的结点是叶⼦结点。它的结点的度就是指,该结点的⼦树的个数,在⼆叉树中,不存在度⼤于2的结点。
计算公式:n0=n2+1
n0 是叶⼦节点的个数
n2 是度为2的结点的个数
n0=n2+1=5+1=6
故⼆叉树有5个度zhidao为2的结点,则该⼆叉树中的叶⼦结点数为6。
⼆叉树节点算法
1)、程序计算法int leaf(bitree t)
{
if(!t)
return 0; //空树,⽆叶⼦
else if(!t->lch && !t->rch)
return 1;
else
return (leaf(t->lch) + leaf(t->rch));
}
2)、⼿动计算公式
利⽤“树中所有结点的度数之和再加1等于结点数”
则叶⼦节点数,即为:
3)、递归算法public int getTotal(Node node){
if(node == null){
return 0;
}
return getTotal(node.left) + getTotal(node.right) + 1;}
以上就是今天的所有内容了,⼆叉树是树结构中⼀个较复杂的结构,它有很多分⽀,分⽀⼜有分⽀,所以想要深⼊了解⼆叉树还是要⼀定的努⼒的。如果你还想要了解更多⼆叉树相关的java常见问答知识,就请来关注我们的⽹站吧。
推荐阅读:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。