数据结构实验之二叉树三:统计叶子数

来源:互联网 发布:robotmaster软件下载 编辑:程序博客网 时间:2024/05/21 20:30

数据结构实验之二叉树三:统计叶子数

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic

Problem Description

已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并求二叉树的叶子结点个数。

Input

连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。

Output

输出二叉树的叶子结点个数。

Example Input

abc,,de,g,,f,,,

Example Output

3
#include<stdio.h>struct node{    int data;    struct node *left,*right;};char s[110];int cnt;int num;struct node *creat(){    struct node *t;    if(s[++cnt]==',')    {        t=NULL;    }    else    {        t=new node;        t->data=s[cnt];        t->left=creat();        t->right=creat();    }    return t;};void in(struct node *t){    if(t)    {        in(t->left);        printf("%c",t->data);        in(t->right);    }}void leave(struct node *root){  if(root)  {    if(root->left==NULL&&root->right==NULL)    {        num++;    }    leave(root->left);    leave(root->right);  }}int main(){    while(~scanf("%s",s))    {        cnt=-1;        num=0;        struct node *root;        root=creat();                leave(root);        printf("%d\n",num);    }}


0 0
原创粉丝点击