首页 新闻 搜索 专区 学院

数据结构 关于树的问题

0
[已解决问题] 解决于 2014-02-17 14:05

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;
}

看不懂什么意思,,求解释

问题补充:

我不明白如何计算树的孩子兄弟链表表示的深度的算法思想

祁大头的主页 祁大头 | 菜鸟二级 | 园豆:220
提问于:2013-12-11 20:50
< >
分享
最佳答案
0

递归。从上到下,从左到右递归整棵树,递归顺序为,上,左,右。递归完一条分支计算一个深度,如果深度比前面那调分支大则替换掉

奖励园豆:5
饮鸩止渴 | 菜鸟二级 |园豆:224 | 2013-12-13 11:02
其他回答(1)
0

用的是孩子兄弟存储表示树的结构,求树的深度。

我非英雄 | 园豆:250 (菜鸟二级) | 2013-12-11 20:53

我的意思是他是怎么求的,我不知道他的算法思想

 

支持(0) 反对(0) 祁大头 | 园豆:220 (菜鸟二级) | 2013-12-11 21:14

@祁大头: 如果数为空,树的深度为0,若树根没有子树,则树深度的为1,否则若有子树,将子树树根作为一颗新树的根递归遍历,求得子树中最大深度即为目标值,最后加上根结点,即加1。其实就是递归的思想。

支持(0) 反对(0) 我非英雄 | 园豆:250 (菜鸟二级) | 2013-12-11 21:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册