假设二叉树采用二叉链表存储结构,设计一个算法求其指定的某一层k(k>1)的叶子结点个数,要求: 根据设计思想,采用C或C++语言描述算法,关键之处给出注释。

admin2018-07-17  45

问题 假设二叉树采用二叉链表存储结构,设计一个算法求其指定的某一层k(k>1)的叶子结点个数,要求:
根据设计思想,采用C或C++语言描述算法,关键之处给出注释。

选项

答案算法的设计如下: int n; int LeafKLevel(BiTree root,int k){ n=0; PreOrder(root,0,k); return 0; } int PreOrder fBiTree root,int deep,int k){ if(deep<k){ if(root—>lchild!=NULL) //若左子树不空,对左子树递归遍历 PreOrder(root—>lchild,deep+1); if(root—>rchiid!=NULL) //若右子树不空,对右子树递归遍历 PreOrder(root—>rchild,deep+1), } else if{deep==k&&root—>lchild==NULL&&root—>rchild==NULL) ++n, }

解析
转载请注明原文地址:https://kaotiyun.com/show/4fRi777K
0

最新回复(0)