问答题
编程求以孩予一兄弟表示法存储的森林的叶了结点数。要求描述结构。【北京工业大学2000年】【北京交通大学2007】
【正确答案】正确答案:算法的基本设计思想:当森林(树)以孩子一兄弟表示法存储时,若结点没有孩子(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); //返回叶子结点和其兄弟子树中的叶子结点数 return LeaveS(t一>fch)+Leaves(t一>nsib); //孩子子树和兄弟子树中叶子结点数之和 }//LeaveS
【答案解析】