Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/05/2016, 21:03
Karpenito
 
Fecha de Ingreso: mayo-2016
Mensajes: 6
Antigüedad: 8 años
Puntos: 0
Respuesta: insertar un hijo en un determinado nodo en un arbol dinamico en c++

Al final resolvi haciendo esto

Código C++:
Ver original
  1. void localizar_nodo(int dat,ABB* abb,ABB* &nodo_localizado){
  2.  
  3.     ABB* copia_arbol = NULL ;
  4.     ABB* nodo_encontrado = NULL;
  5.     copia_arbol = abb;
  6.    
  7.    
  8.     nodo_encontrado = copia_arbol;
  9.     nodo_localizado = copia_arbol;
  10.  
  11.     if(copia_arbol != NULL) {
  12.        
  13.         if (copia_arbol->elem == dat){
  14.            
  15.             //Copiamos el nodo encontrado
  16.             nodo_encontrado = copia_arbol;
  17.    
  18.         }else{  
  19.    
  20.             localizar_nodo(dat,copia_arbol->izq,nodo_localizado);
  21.             localizar_nodo(dat,copia_arbol->der,nodo_localizado);
  22.         }
  23.    
  24.     }
  25.    
  26. }

Código C++:
Ver original
  1. void inserta_hijo_en_nodo(ABB *arbol,int dato_nodo,int nuevo_elem)
  2. {
  3.     ABB *nuevo;
  4.     ABB *nodo_objetivo;
  5.  
  6.    
  7.     localizar_nodo( dato_nodo , arbol , nodo_objetivo);
  8.    
  9.     //Esta es una salida de prueba aqui es donde me doy cuenta que el nodo es
  10.     //diferente al buscado
  11.    
  12.     cout<<"El elemento en el nodo es "<<nodo_objetivo->elem<<endl;
  13.    
  14.     nuevo = crear_nodo();
  15.     nuevo->elem = nuevo_elem;
  16.    
  17.     nodo_objetivo->izq = nuevo;        
  18. }

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