是这样的,总也该不对啊,犯愁哦。
#include "stdio.h"
#include"stdlib.h"
typedef char DataType;
typedef struct BiTNode
{
DataType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreatBiTree(BiTree *T)
{
char ch;
ch=getchar();
if(ch==' ')T=NULL;
else
{
if(!(T=(BiTNOde*)malloc(sizeof(BiTNode)))exit(OVERFLOW)
T->data=ch;
CreatBiTree(T->lchild);
CreatBiTree(T->rchild);
}
}
void Node(BiTree T)
{
int static nodes=0;
if(T)
{
Node(T->lchild);
nodes++;
Node(T->rchild);
nodes++
}
return nodes;
}
void Leaf(BiTree T)
{
int static leaves=0;
if(T)
{
leaf(T->lchild);
if(!(T->lchild||T->rchild))
leaves++;
Leaf(T->rchild);
}
return leaves;
}
void main()
{
int nodes,leaves,root;
nodes=0,leaves=0;
int BiTree root;
CreatBiTree(&root);
nodes=Node(root);
leaves=Leaf(root);
printf("\n nodes=%d leaves=%d",nodes,leaves);
}