已知先序遍历求叶子数

。_饼干妹妹 提交于 2020-03-07 07:00:15

#include
#include <bits/stdc++.h>
using namespace std;
char a[55];
int s=0;
int sum;
struct node
{
char data;
struct node *l,*r;
};
struct node *creat()
{
struct node root;
char c;
c=a[s++];
if(c==’,’)
root=NULL;
else
{
root=(struct node
)malloc(sizeof(struct node));
root->data=c;
if(root)
{
root->l=creat();
root->r=creat();
}
}
return root;
};
int yezi(struct node *root)
{
if(rootNULL)
return 0;
if(root->l
NULL&&root->r==NULL)
return 1;
else
return yezi(root->l)+yezi(root->r);
}
int main()
{
struct node *root;
while(~scanf("%s",a))
{
s=0;
root=creat();
sum=yezi(root);
printf("%d\n",sum);
}
return 0;
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!