Ho bisogno di trovare il numero di elementi in un albero usando un algoritmo iterativo, ma sto trovando il codice concettualmente molto difficile da scrivere.Attraversare in modo alterato attraverso l'albero per trovare la dimensione
Il mio approccio è quello di iniziare dal nodo radice e visitare i nodi figlio, quindi i figli di questi nodi figlio e così via.
Questo è il codice che ho scritto, che lavora per un piccolo albero, ma non è una soluzione reale perché avevo bisogno di aggiungere un ulteriore blocco per ciascun livello di profondità:
// 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;
Penso che questa sia una domanda simile al tuo: http://stackoverflow.com/questions/547622/counting-nodes-in-a-tree-in-java forse si può trovare alcune risposte lì. –
Stavo leggendo quello prima ed è stato utile, ma questo albero non è binario e ho bisogno di farlo iterativamente. – Matt