Al final resolvi haciendo esto
Código C++:
Ver originalvoid localizar_nodo(int dat,ABB* abb,ABB* &nodo_localizado){
ABB* copia_arbol = NULL ;
ABB* nodo_encontrado = NULL;
copia_arbol = abb;
nodo_encontrado = copia_arbol;
nodo_localizado = copia_arbol;
if(copia_arbol != NULL) {
if (copia_arbol->elem == dat){
//Copiamos el nodo encontrado
nodo_encontrado = copia_arbol;
}else{
localizar_nodo(dat,copia_arbol->izq,nodo_localizado);
localizar_nodo(dat,copia_arbol->der,nodo_localizado);
}
}
}
Código C++:
Ver originalvoid inserta_hijo_en_nodo(ABB *arbol,int dato_nodo,int nuevo_elem)
{
ABB *nuevo;
ABB *nodo_objetivo;
localizar_nodo( dato_nodo , arbol , nodo_objetivo);
//Esta es una salida de prueba aqui es donde me doy cuenta que el nodo es
//diferente al buscado
cout<<"El elemento en el nodo es "<<nodo_objetivo->elem<<endl;
nuevo = crear_nodo();
nuevo->elem = nuevo_elem;
nodo_objetivo->izq = nuevo;
}
ya hace lo que queria , el cambio radica que la funcion que localiza el nodo ya no lo retorna sino que en los parametros le paso una variabel ABB* & nodo_encontrado
en esta grabo el nodo y posteriormente lo uso , nose porque retornando no funciona , lo unico que se me ocurre es que las funciones retornan cosas por defecto y esos retornos se juntaban con el retorno resultado y lo dañaba , si alguien me puede explicar eso se lo agradeceria un monton