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,