Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/05/2016, 20:05
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++

haciendo pruebas descubri que en la funcion inserta_hijo_en_nodo en la linea que hago
Código C++:
Ver original
  1. nodo = localizar_nodo( dato_nodo , arbol);
por alguna razon no se estan pasando los datos del nodo encontrado , actualmente las funciones son estas

Código C++:
Ver original
  1. ABB* localizar_nodo(int dat,ABB* abb){
  2.  
  3.     ABB* copia_arbol = NULL;
  4.     copia_arbol = abb;
  5.  
  6.     if(copia_arbol != NULL) {
  7.    
  8.         cout<<"elemento "<<copia_arbol->elem<<endl;  
  9.         if (copia_arbol->elem == dat){
  10.             cout<<"elemento retornado:"<<copia_arbol->elem<<endl;
  11.             return copia_arbol;    
  12.         }else{  
  13.    
  14.             localizar_nodo(dat,copia_arbol->izq);
  15.             localizar_nodo(dat,copia_arbol->der);
  16.         }
  17.        
  18.        
  19.    
  20.     }
  21. }

y la que inserta el nodo

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;
  5.    
  6.     nodo = localizar_nodo( dato_nodo , arbol);
  7.    
  8.     //Esta es una salida de prueba aqui es donde me doy cuenta que el nodo es
  9.     //diferente al buscado
  10.    
  11.     cout<<"El elemento en el nodo es "<<&nodo->elem<<endl;
  12.    
  13.     nuevo = crear_nodo();
  14.     nuevo->elem = nuevo_elem;
  15.    
  16.     //nodo->izq = nuevo;        
  17. }