#include<stdio.h>
#include<stdlib.h>
typedef struct BiTNode
{
char ch;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
BiTree InitTree(BiTree T)
{
char ch;
scanf("%c",&ch);
if(ch=='#')
{
T=NULL;
}
else
{
T=(BiTree)malloc(sizeof(BiTNode));
T->ch=ch;
T->lchild=InitTree(T->lchild);
T->rchild=InitTree(T->rchild);
}
return T;
}
//根据先序序列建造树的算法,铭记!
void Traverse(BiTree T,int &NUM)
{
if(T)
{
if(T->lchild==NULL && T->rchild==NULL)
{
NUM++;
}
Traverse(T->lchild,NUM);
printf("%c",T->ch);
Traverse(T->rchild,NUM);
}
}
int main()
{
BiTree T=NULL;
T=InitTree(T);
int NUM=0;
Traverse(T,NUM);
printf("\n%d\n",NUM);
return 0;
}
7-1 求二叉树的叶子结点个数
最新推荐文章于 2024-05-29 12:00:00 发布