题目6.62 对以孩子-兄弟链表表示的树编写计算树的深度的算法。
将树拓展成森林,在森林上考虑此算法
森林转换成二叉树
可以看到,二叉树的根(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));
}