【正确答案】以孩子兄弟表示法存储时,若结点没有孩子(fch = null),则它必是叶子,总的叶子结点个数是孩子子树(fch)上的叶子数和兄弟(nsib)子树上叶结点个数之和。
typedef struct node{
elemType data; //数据域
struct node *fch, *nsib; //孩子与兄弟域
}*Tree;
int Leaves(Tree t){ //计算以孩子一兄弟表示法存储的森林的叶子数
if(t)
if(t->fch==null) //若结点无孩子,则该结点必是叶子
return(1+Leaves(t->nsib)); //返回叶子结点和其兄弟子树中的叶子结点数
else return(Leaves(t->fch)+Leaves(t->nsib)); //孩子子树和兄弟子树中叶子数之和
}
【答案解析】