Hola! no vi todo el codigo pero error me parece q esta en la funcion anadir():
Código C:
Ver originalnodo *anadir(int clave, nodo *r)
{
int num;
if(r == NULL){
r
= (nodo
*)malloc(sizeof(nodo
)); if(r == NULL)
else
{r->clave = num; r->izquierdo = r->derecho = NULL;}}
else{
if(num < r->clave)
r->izquierdo = anadir(num, r->izquierdo);
if(num > r->clave)
r->derecho = anadir(num, r->derecho);}
return r;
}
Cuando el arbol esta vacio, vos le asignas a r->clave la variable "num", pero a esa variable la declaraste en esta funcion, tenias q hacer r->clave=clave;
Y usar clave en los lugares donde dice num
Saludos
PD: los ifs del main queda mas lindo con un switch-case :)