我怎么得到树的“深度”?
17日视图(30天)
显示旧的评论
接受的答案
更多的答案(2)
杰夫•海斯
2015年5月7日
斯塔——代表你的树吗?作为一个矩阵或某种节点与其他节点列表吗?我怀疑你想创造某种递归函数计算每个节点的深度(或父树的子树)。例如,如果
树
是顶级树/节点,那么你可以做些什么呢
maxDepth = getDepth(树)
在哪里
函数(深度)= getDepth(树)
maxDepth = 0;
为每个childNode树做的
depthChild = 1 + getDepth (childNode);
如果depthChild > maxDepth
maxDepth = depthChild;
结束
结束
注意我们递归检查每个子节点的深度主要的树,把每一个就像树本身。我们只能停止递归,当我们到达一个节点没有任何的孩子。
0评论
斯塔凡Sevon
2015年5月8日
1评论
伊戈尔
2017年7月12日
我刚刚检查这一点蛮力。我可以确认它的工作原理。它看起来像树节点存储在“t。父”“按深度排序”的方式。因此只有检查最后一个就足够了。
函数max_depth = treedepth(树)
父母= tree.Parent;
max_depth = 0;
depthA =南([1元素个数(父)]);
为start_node_ind = 1:元素个数(父)
节点=父(start_node_ind);
深度= 0;
而节点~ = 0
深度=深度+ 1;
=父节点(节点);
结束
depthA (start_node_ind) =深度;
结束
max_depth = max (depthA);
%看起来父母列表存储在一个方式,深度排序
断言(issorted (depthA));
%因此,最后一个“父”永远是最深的
断言(max (depthA) = = depthA(结束));
结束