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

来源:互联网 发布:网络金融平台合法的吗 编辑:程序博客网 时间:2024/05/29 11:01

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

Time Limit: 1000MSMemory 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>char a[50];int i;struct node{ char data; struct node *lchild,*rchild;};struct node *creat(){ struct node *root; if(a[i++]==',')root=NULL; else {  root=(struct node *)malloc(sizeof(struct node));  root->data=a[i-1];  root->lchild=creat();  root->rchild=creat(); } return root;}int count(struct node *root){ if(root==NULL)return 0; else {  if(root->lchild==NULL&&root->rchild==NULL)return 1;  else return count(root->lchild)+count(root->rchild); }}int main(){ struct node *root; while(gets(a)!=NULL) {  i=0;  root=creat();  int n;  n=count(root);  printf("%d\n",n); } return 0;}
0 0