Haremos un recorrido en preorden por el árbol y cada nodo visitado implicará
un incremento de uno en la variable que al final contendrá el número total de
nodos del árbol.De esta manera,podemos usar el mismo algoritmo no recursivo que para
listar un árbol ,pero sustituyendo la escritura por el incremento de la variable.La
función es la siguiente:
int NumeroNodosArbol(tArbol T)
{
int res;
Pila P;
Nodo m;
res=0;
P=CrearPila(sizeof(nodo));
m=Raiz(T);
do{
if(m!=NODO_NULO){
res++;
Push(&m,P);
m=HijoIzqda(m,T);
}
else if(!VaciaPila(P)){
Tope(&m,P);
Pop(P);
m=HermanoDrcha(m,T);
}
}while (!VaciaPila(P));
DestruirPila(P);
return res;
}