Bueno... Soy Nuevo En El Foro ...Poseo un Código De Arboles binarios ,
ya logre que arrojara InOrden, PostOrden y PreOrden, Pero Lo que
ahora necesito es Que Me Arroje el resultado del numero de hojas
totales que posee este arbol... Ayuda !!!!
Código C++:
Ver original#include <stdio.h>
#include <stdlib.h>
struct nodo
{
struct nodo *izquierdaPtr;
int dato;
struct nodo *derechaPtr;
};
typedef struct nodo NODO;
typedef NODO *ARBOLNODOPTR;
void insertaNodo(ARBOLNODOPTR *arbolPtr, int valor)
{
if (*arbolPtr == NULL)
{
*arbolPtr
= (ARBOLNODOPTR
)malloc(sizeof(NODO
)); if (*arbolPtr != NULL)
{
(*arbolPtr)->dato = valor;
(*arbolPtr)->izquierdaPtr = NULL;
(*arbolPtr)->derechaPtr = NULL;
}
else
{
printf("%d no insertado. No hay memoria disponible.\n", valor
); }
}
else
if (valor < (*arbolPtr)->dato)
{
insertaNodo(&((*arbolPtr)->izquierdaPtr), valor);
}
else
if (valor > (*arbolPtr)->dato)
insertaNodo(&((*arbolPtr)->derechaPtr), valor);
else
}
void inOrder(ARBOLNODOPTR arbolPtr)
{
if (arbolPtr != NULL)
{
inOrder(arbolPtr->izquierdaPtr);
printf("%3d", arbolPtr
->dato
); inOrder(arbolPtr->derechaPtr);
}
}
void preOrder(ARBOLNODOPTR arbolPtr)
{
if (arbolPtr != NULL)
{
printf("%3d", arbolPtr
->dato
); preOrder(arbolPtr->izquierdaPtr);
preOrder(arbolPtr->derechaPtr);
}
}
void postOrder(ARBOLNODOPTR arbolPtr)
{
if (arbolPtr != NULL)
{
postOrder(arbolPtr->izquierdaPtr);
postOrder(arbolPtr->derechaPtr);
printf("%3d", arbolPtr
->dato
); }
}
main()
{
int i, item;
ARBOLNODOPTR raizPtr = NULL;
for (i=1; i <= 10; i++)
{
insertaNodo(&raizPtr, item);
}
printf("\n\nEl preOrden es:\n"); preOrder(raizPtr);
printf("\n\nEl inOrden es:\n"); inOrder(raizPtr);
printf("\n\nEl postOrden es:\n"); postOrder(raizPtr);
}