Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/03/2012, 13:36
diegogarciamaciel
 
Fecha de Ingreso: marzo-2012
Ubicación: Uruguay
Mensajes: 4
Antigüedad: 12 años, 2 meses
Puntos: 0
Exclamación Copiar Arbol binario a uno nuevo

Hola gente del foro, como le va a todos? espero que bien, he encontrado este foro en internet y la verdad que me ha parecido de maravilla.
Tengo la siguiente duda,

tengo que copiar un arbol binario a uno nuevo, tengo lo siguiente

ELEMENTO:
typedef struct {
int solapa;
bool EsNumero;
union {
int numero;
char car;
} DatosExtra;
} Elemento;


EXPRESION:
typedef struct NodoA {
Elemento info;
NodoA * hizq;
NodoA * hder;
} nodo;
typedef nodo * Expresion;


void copiarElemento (Elemento e1, Elemento &e2){
e2.solapa = e1.solapa ;
e2.EsNumero = e1.EsNumero;
//if(e1.EsNumero == true)
e2.DatosExtra.numero = e1.DatosExtra.numero ;
// else
e2.DatosExtra.car = e1.DatosExtra.car;
}//end copiarElemento

void copiarExpresion (Expresion exp1, Expresion &exp2){
if (exp1!= NULL){
if (exp2 == NULL){
exp2 = new nodo;
copiarElemento(exp1->info,exp2->info);
exp2->hizq =NULL;
exp2 ->hder=NULL;
}
}
copiarExpresion (exp1->hizq,exp2->hizq);
copiarExpresion (exp1->hder,exp2->hder);
}

el tema es que cuando viene a copiarExpresion (exp1->hizq,exp2->hizq); mi programa explota, y no encuentro el error. Estos procedimiento de copia son correctos?

Uds conocen algun procedimiento que funcione bien que lo ejecute sin problemas???

Desde ya muchas gracias por la ayuda ya que no se que hacer :S

Saludos,