求二叉树结点个数
#include <stdio.h> #include <stdlib.h> typedef struct Node{ int data; struct Node *lchild,*rchild; }TreeNode,*Tree; void CreateTree(Tree &T) { int x; scanf("%d",&x); if(x==-1) { T=NULL; return; } else { T=(Tree)malloc(sizeof(TreeNode)); T->data=x; printf("输入%d的左结点:",x); CreateTree(T->lchild); printf("输入%d的右结点:",x); CreateTree(T->rchild); } } int GetNum(Tree T) //递归求个数 { if(T==NULL) return 0; else return 1+GetNum(T->lchild)+GetNum(T->rchild); } int main() { Tree T; CreateTree(T); int x=GetNum(T); printf("%d",x); return 0; }