Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/05/2012, 17:50
cesar_casla
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 10 meses
Puntos: 94
Respuesta: Interrogante ante un árbol binario

Hola! no vi todo el codigo pero error me parece q esta en la funcion anadir():
Código C:
Ver original
  1. nodo *anadir(int clave, nodo *r)
  2.     {
  3.       int num;
  4.      
  5.       if(r == NULL){
  6.          r = (nodo *)malloc(sizeof(nodo));
  7.          if(r == NULL)
  8.             puts("\tFalta Memoria");
  9.          else
  10.             {r->clave = num; r->izquierdo = r->derecho = NULL;}}
  11.      
  12.       else{
  13.          if(num < r->clave)
  14.             r->izquierdo = anadir(num, r->izquierdo);
  15.          if(num > r->clave)
  16.             r->derecho = anadir(num, r->derecho);}
  17.      
  18.       return r;
  19.     }
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 :)