carp
26-06-2014, 12:20 PM
buenas gente, tengo un problema y no lo he podido solucionar, quizas pueden ver el error que yo lo no veo.
tengo una clase nodo que tiene el hermano, el hijo y una funcion buscar, el tema es que retorna NULL antes de terminar de recorrer todo el árbol.
void NodoArbol:: buscar(char *ch){
if(this->elem)
{
Recurso *r=dynamic_cast<Recurso*>(this->elem);
//cout<<"\nva a comprar: "<<ch<<" con "<<r->getUbicacion();
if(strcmp(ch,r->getUbicacion())==0)
{
return this;
}
}
}
if(this->hermano!=NULL)
return this->hermano->buscar(ch);
if(this->hijo!=NULL)
return this->hijo->buscar(ch);
return NULL; //retorna null en caso de que no encuentre
me doy cuenta que nunca llega a comparar porque en la linea que está comentada actualmente, no me muestra el recurso que deberia comparar.
tengo la carpeta raiz ya por defecto.
ingreso: /carpeta
/carpeta2
luego dentro carpeta, /carpeta/carpeta1
por lo que al mostrar los recursos que están en el arbol me muestra:
/
/carpeta
/carpeta/carpeta1
/carpeta2
OSEA que ingresar lo ingresa correctamente, pero al agregar un recurso dentro de /carpeta/carpeta1 , no lo encuentra (al nodo que tiene ese recurso) porque retorna NULL antes.
agradezco la ayuda que me puedan dar
tengo una clase nodo que tiene el hermano, el hijo y una funcion buscar, el tema es que retorna NULL antes de terminar de recorrer todo el árbol.
void NodoArbol:: buscar(char *ch){
if(this->elem)
{
Recurso *r=dynamic_cast<Recurso*>(this->elem);
//cout<<"\nva a comprar: "<<ch<<" con "<<r->getUbicacion();
if(strcmp(ch,r->getUbicacion())==0)
{
return this;
}
}
}
if(this->hermano!=NULL)
return this->hermano->buscar(ch);
if(this->hijo!=NULL)
return this->hijo->buscar(ch);
return NULL; //retorna null en caso de que no encuentre
me doy cuenta que nunca llega a comparar porque en la linea que está comentada actualmente, no me muestra el recurso que deberia comparar.
tengo la carpeta raiz ya por defecto.
ingreso: /carpeta
/carpeta2
luego dentro carpeta, /carpeta/carpeta1
por lo que al mostrar los recursos que están en el arbol me muestra:
/
/carpeta
/carpeta/carpeta1
/carpeta2
OSEA que ingresar lo ingresa correctamente, pero al agregar un recurso dentro de /carpeta/carpeta1 , no lo encuentra (al nodo que tiene ese recurso) porque retorna NULL antes.
agradezco la ayuda que me puedan dar