70,020
社区成员




#include <stdio.h>
#include <stdlib.h>
typedef char ElemType;
typedef struct BTNode{
ElemType data;
struct BTNode* left;
struct BTNode* right;
}BTreeNode;
BTreeNode *CreateBTree(BTreeNode * HL);
void InOrder(BTreeNode *HL);
int CountTreeLeaf(BTreeNode *HL);
int main()
{
BTreeNode * HL = NULL;
HL = CreateBTree(HL);
InOrder(HL);
printf("%d\n",CountTreeLeaf(HL));
return 0;
}
BTreeNode *CreateBTree(BTreeNode * HL)
{
ElemType ch;
scanf("%c", &ch);
if (ch == ' ')
HL = NULL;
else
{
HL = (BTreeNode *)malloc(sizeof(BTreeNode));
HL->data = ch;
HL->left = CreateBTree(HL->left);
HL->right = CreateBTree(HL->right);
}
return HL;
}
void InOrder(BTreeNode *HL)
{
if (HL != NULL)
{
InOrder(HL->left);
printf("%c ", HL->data);
InOrder(HL->right);
}
}
int CountTreeLeaf(BTreeNode *HL)
{
static int count = 0;
if (HL != NULL)
{
CountTreeLeaf(HL->left);
if (HL->right == NULL && HL->left == NULL)
++count;
CountTreeLeaf(HL->right);
}
return count;
}