题目6.62 对以孩子-兄弟链表表示的树编写计算树的深度的算法。
将树拓展成森林,在森林上考虑此算法
森林转换成二叉树
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190104123028577.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk4MjM1NA==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190104123341581.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk4MjM1NA==,size_16,color_FFFFFF,t_70)
可以看到,二叉树的根(A部分),左子树(B部分),右子树(C部分)分别对应森林的A,B,C三个部分
若二叉树根存在,则比较(1+左子树的深度)(相当于森林中第一棵树的深度)和(右子树的深度)(相当于森林中其他树的深度)取其中大的 .
int Depth(CSTree T)
{
if(T == NULL)
return 0;
else
return max(1 + Depth(T->firstchild), Depth(T->nextsibling));
}