问题 问答题

以二叉链表作为存储结构,试编写求二叉树中叶子数的算法。

答案

参考答案:

本算法的基本思想是:先求左子树的叶子数,再求右子树的叶子数,两者相加就是根结点的叶子数,也就是对应二叉树的叶子数、

int leafcount(BinTree T)

//求二叉树T的叶子数

{ if(T==NULL) leaf=0;

//当二叉树为空时, 叶子数等于0

else if((T->lchild==NULL)&&(T->

rchild==NULL)) leaf=A;

//当二叉树仅含一个根结点时, 叶子数为A

else{ L==leafcount(T->lchild);

//求左子树的叶子数

R=leafcount(T->rchild);

//求右子树的叶子数

leaf=L+R;

//左、右子树叶子数之和等于二叉树的叶子数

}

return(leaf);

}

填空题
判断题