//统计度为0的结点个数,其值用sum返回
void leaf(BiTree T, int &sum)
{
if(T)
{
if(T->lchild==NULL && T->rchild==NULL )
sum++;
leaf(T->lchild,sum);
leaf(T->rchild,sum);
}
}
//统计度为1的结点个数,其值用sum返回
void OneChild(BiTree T, int &sum)
{
if(T)
{
if(!T->lchild && T->rchild || T->lchild && !T->rchild )
sum++;
OneChild(T->lchild,sum);
OneChild(T->rchild,sum);
}
}
//统计度为2的结点个数,其值用sum返回
void TwoChild(BiTree T, int &sum)
{
if(T)
{
if(T->lchild && T->rchild )
sum++;
TwoChild(T->lchild,sum);
TwoChild(T->rchild,sum);
}
}