Foros del Web » Programación para mayores de 30 ;) » C/C++ »

recursividad

Estas en el tema de recursividad en el foro de C/C++ en Foros del Web. Buenas, a ver si esta vez tengo mas suerte y alguien me contesta. Estoy recorriendo un arbol para ir actualizando uno de sus parámetros. es ...
  #1 (permalink)  
Antiguo 23/04/2010, 03:02
 
Fecha de Ingreso: abril-2010
Mensajes: 23
Antigüedad: 13 años, 11 meses
Puntos: 0
recursividad

Buenas,
a ver si esta vez tengo mas suerte y alguien me contesta.

Estoy recorriendo un arbol para ir actualizando uno de sus parámetros. es una lista. Quiero devolverle finalmente al nodo raiz la lista actualizada, pero a partir de la segunda generación, cuando ya no son hijos directos no funciona, que debería devolver la función y donde?

El código es el siguiente

void G::Netlist(int n)
{
for (int i=1; i < n+1; i++) //busco el nodo, una vez encontrado hago.
{
if (number==i) //busco el nodo del arbol
this->Netlist3(i); //el que tenga number i
else
this->Netlist2(i);
}
}

void G::Netlist2(int i) //coger cada nodo en orden e ir haciendo
{
LISTA lista;
lista=this->lista;
G* current;
for (int n=0; n<containerSize(); n++)
if ((current=NthChild (n)))
if (current->number==i)
{
current->lista=lista;
current->Netlist3(i);
this->lista =current->lista; break;
}
else
current->Netlist2(it); //si no es el que buscamos seguimos buscando
//this->lista =current->lista;
}


Los nodos del arbol son G, los voy recorriendo
La primera función me busca los nodos en el orden que quiero, la segunda los encuentra y llama a Netlist3 donde se haran los cambios a lista, lo que quiero es ir acutalizando lista conforme recorremos el arbol y que al final sea devuelto en el primer nodo.

A ver si alguien me puede ayudar,
Muchiiisimas gracias.
Por cierto, como se inserta el código en ese formato q poneis??

Etiquetas: recursividad
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:37.