int treedepth(CSTree t)
{
CSTree p;
int depth,max=0;
if(!t) // 树空
return 0;
if(!t->firstchild) // 树无长子
return 1;
for(p=t->firstchild;p;p=p->nextsibling)
{
depth=treedepth(p);
if(depth>max)
max=depth;
}
return max+1;
}
看不懂什么意思,,求解释
我不明白如何计算树的孩子兄弟链表表示的深度的算法思想
递归。从上到下,从左到右递归整棵树,递归顺序为,上,左,右。递归完一条分支计算一个深度,如果深度比前面那调分支大则替换掉
用的是孩子兄弟存储表示树的结构,求树的深度。
我的意思是他是怎么求的,我不知道他的算法思想
@祁大头: 如果数为空,树的深度为0,若树根没有子树,则树深度的为1,否则若有子树,将子树树根作为一颗新树的根递归遍历,求得子树中最大深度即为目标值,最后加上根结点,即加1。其实就是递归的思想。