Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/07/2011, 09:47
sam90
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: Arboles Binarios

Viendo tu metodo:

Código C:
Ver original
  1. void inOrder(ARBOLNODOPTR arbolPtr)
  2. {
  3.  if (arbolPtr != NULL)
  4.  {
  5.     inOrder(arbolPtr->izquierdaPtr);
  6.     printf("%3d", arbolPtr->dato);
  7.     inOrder(arbolPtr->derechaPtr);
  8.  }
  9. }

Cada vez que llegamos a la condicion de que arbolPtr es NULL eso quiere decir que es una hoja. Ahora simplemente deberias returnar un uno idicando que es una hoja. Luego cada llamada recursiva recoje esos valores y simplemente los suma y los devuelve.

Código C:
Ver original
  1. int NumHoja(ARBOLNODOPTR arbolPtr)
  2. {
  3.  if (arbolPtr != NULL)   return ( NumHoja(arbolPtr->izquierdaPtr) +    NumHoja(arbolPtr->derechaPtr) ) ;
  4.  else return 1;
  5. }