【发布时间】:2011-11-21 17:06:57
【问题描述】:
我需要使用迭代算法查找树中元素的数量,但我发现代码在概念上很难编写。
我的做法是从根节点开始,访问子节点,然后是这些子节点的子节点,以此类推。
这是我编写的适用于小树的代码,但不是真正的解决方案,因为我需要为每个深度级别添加一个额外的块:
// Start the counter at 1 because the root node counts
int size = 1;
for(ITree child1 : root) {
size++;
for(ITree child2 : child1) {
size++;
for(ITree child3 : child2) {
size++;
for(ITree child4 : child3) {
size++;
for(ITree child5 : child4) {
size++;
}
}
}
}
}
return size;
【问题讨论】:
-
我认为这是一个与您类似的问题:stackoverflow.com/questions/547622/…也许您可以在那里找到一些答案。
-
我之前读过,它很有帮助,但是这棵树不是二元树,我需要迭代地做。