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

来源:互联网 发布:数据魔方在哪里看 编辑:程序博客网 时间:2024/05/29 08:11


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

Time Limit: 1000MS Memory Limit: 65536KB
SubmitStatistic

Problem Description

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

Input

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

Output

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

Example Input

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

Example Output

3
#include <stdio.h>#include <stdlib.h>#include <string.h>char a[100];int cnt, x;struct node{    char data;    struct node *lchild, *rchild;};struct node *creat(){    struct node *root;    if(a[cnt++] == ',')    {        return NULL;    }    else    {        root = (struct node *)malloc(sizeof(struct node));        root -> data = a[cnt-1];        root -> lchild = creat();        root -> rchild = creat();    }    return root;};void yezi(struct node *root){    if(root != NULL)    {        if(root -> rchild == NULL &&root -> lchild == NULL)        {            x++;        }         yezi(root -> lchild);         yezi(root -> rchild);    }}int main(){    struct node *root;    while(~scanf("%s", a))    {        cnt = 0;        x = 0;        root = creat();        yezi(root);        printf("%d\n", x);    }    return 0;}
阅读全文
0 0
原创粉丝点击