//求双分支结点数
int Dsons(BTNode *T)
{
if(T==NULL)
return 0;
else if(T->lchild!=NULL&&T->rchild!=NULL)
return Dsons(T->lchild)+Dsons(T->rchild)+1;
else return Dsons(T->lchild) + Dsons(T->rchild);
}
//求单分支结点数
int Ssons(BTNode *T)
{
if(T==NULL)
return 0;
else if((T->lchild==NULL&&T->rchild!=NULL)||(T->lchild!=NULL&&T->rchild==NULL))
return Ssons(T->lchild)+Ssons(T->rchild)+1;
else return Ssons(T->lchild)+Ssons(T->rchild);
}
//求叶结点数
int sons(BTNode *T)
{
if(T==NULL)
return 0;
else if(T->lchild==NULL&&T->rchild==NULL)
return 1;
else
return sons(T->lchild)+sons(T->rchild);
}
【专题二】二叉树求叶结点、单分支结点、双分支结点的个数
最新推荐文章于 2023-04-17 10:30:09 发布