Necesito encontrar el número de elementos en un árbol usando un algoritmo iterativo, pero el código me resulta conceptualmente muy difícil de escribir.Cruce iterativo a través del árbol para encontrar el tamaño
Mi enfoque es comenzar en el nodo raíz y visitar los nodos secundarios, luego los secundarios de estos nodos secundarios, y así sucesivamente.
Este es el código que he escrito, que trabaja para un pequeño árbol, pero no es una solución real, ya que había necesidad de añadir un bloque adicional para cada nivel de profundidad:
// 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;
Creo que esta es una pregunta similar a la suya: http://stackoverflow.com/questions/547622/counting-nodes-in-a-tree-in-java tal vez usted puede encontrar algunas respuestas allí. –
Estaba leyendo eso antes y fue útil, pero este árbol no es binario y necesito hacerlo iterativamente. – Matt