我需要使用迭代算法找到树中元素的数量,但我发现代码在概念上很难编写。迭代遍历树找到大小
我的方法是从根节点开始,访问子节点,然后访问这些子节点的子节点,等等。
这是我写的代码,适用于一棵小树,但并不是真正的解决办法,因为我需要添加一个额外的块的每一个层次:
// 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;
我认为这是你的一个类似的问题:http://stackoverflow.com/questions/547622/counting-nodes-in-a-tree-in-java你或许可以找到有些答案在那里。 –
我之前读过的文章很有帮助,但这棵树不是二元的,我需要迭代地做。 – Matt