应用题 16.以孩子一兄弟表示法存储的森林的叶子结点数(要求描述结构)。
【正确答案】当森林(树)以孩子兄弟表示法存储时,若结点没有孩子(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)); //孩子子树和兄弟子树中叶子数之和
}
【答案解析】