Te lo dejo en pseucodigo, tu lo traduces a C++, recuerda que debes definir el tipo de dato porque los arboles no son tipos definidos en el entorno de C++.
Funcion NHijos (Arbol A) -> Entero
Si EsVacio(A) entonces
retornar 0
Sino
retornar 1 + NHijos(Derecho(A)) + NHijos(Izquierdo(A))
Fsi
Ffuncion
Si quieres saber cuantos hijos tiene el arbol X de entrada llamas a NHijos(X), si quieres saber cuantos hijos hay en el subarbol derecho llamas a NHijos(Derecho(X)) y si quieres saber cuantos hijos hay en el izquierdo llamas NHijos(Izquierdo(X))