#include#include typedef struct _BT_NODE{ int data; struct _BT_NODE* left; struct _BT_NODE* right;}BT_NODE;BT_NODE* AppendNode(int data){ BT_NODE* node=(BT_NODE*)malloc(sizeof(BT_NODE)); node->left=NULL; node->right=NULL; node->data=data; return node;}int BinTreeNodeCount(BT_NODE* root){ int nodeNum=1; if(!root)return 0; nodeNum+=BinTreeNodeCount(root->left); nodeNum+=BinTreeNodeCount(root->right); return nodeNum;}int BinTreeLeafNodeCount(BT_NODE* root){ int nodeNum=0; if(!root)return 0; if(root->left==NULL && root->left==NULL) nodeNum++; else { nodeNum+=BinTreeLeafNodeCount(root->left); nodeNum+=BinTreeLeafNodeCount(root->right); } return nodeNum;}int main(void) { BT_NODE* root; /* 10 /\ 20 3015 16 */ root=AppendNode(10); root->left=AppendNode(20); root->right=AppendNode(30); root->left->left=AppendNode(15); root->left->right=AppendNode(16); printf("The binary tree has %d node(s).\n",BinTreeNodeCount(root)); printf("The binary tree has %d leaf node(s).\n",BinTreeLeafNodeCount(root)); return 0;}