用递归算法把复杂问题分解成相同的子问题。
对每一个节点来说,先求它的第一个孩子的深度,再分别求该孩子兄弟的深度,进行比较。
int depthtree(CSTree &T)
{
if(!T) return 0;
CSTree p;
p=T->fc;
int depth=depthtree(p);
while(p)
{
p=p->nb;
if(depth<depthtree(p))
depth=depthtree(p);
}
return depth+1;
}
用递归算法把复杂问题分解成相同的子问题。
对每一个节点来说,先求它的第一个孩子的深度,再分别求该孩子兄弟的深度,进行比较。
int depthtree(CSTree &T)
{
if(!T) return 0;
CSTree p;
p=T->fc;
int depth=depthtree(p);
while(p)
{
p=p->nb;
if(depth<depthtree(p))
depth=depthtree(p);
}
return depth+1;
}