我需要使用迭代算法找到樹中元素的數量,但我發現代碼在概念上很難編寫。迭代遍歷樹找到大小
我的方法是從根節點開始,訪問子節點,然後訪問這些子節點的子節點,等等。
這是我寫的代碼,適用於一棵小樹,但並不是真正的解決辦法,因爲我需要添加一個額外的塊的每一個層次:
// 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