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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SDUT 3342 数据结构实验之二叉树三:统计叶子数相关的知识,希望对你有一定的参考价值。

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

Time Limit: 1000MS Memory Limit: 65536KB

Problem Description

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

Input

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

Output

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

Example Input

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

Example Output

3

DQE:

水题一道。
 
 1 #include <iostream>
 2 #include <cstdio>
 3 
 4 using namespace std;
 5 
 6 struct Tree
 7 {
 8     char c;
 9     Tree *lt,*rt;
10 };
11 
12 Tree *creat(char *&xx)
13 {
14     if(*xx==\0)
15         return NULL;
16     if(*xx==,)
17     {
18         xx++;
19         return NULL;
20     }
21     Tree *r=new Tree;
22     r->c=*xx++;
23     r->lt=creat(xx);
24     r->rt=creat(xx);
25     return r;
26 }
27 
28 int visit(Tree *r)
29 {
30     if(r==NULL)
31         return 0;
32     if(r->lt==NULL&&r->rt==NULL)
33         return 1;
34     return visit(r->lt)+visit(r->rt);
35 }
36 
37 int main()
38 {
39     Tree *root;
40     char xx[55],*p;
41     while(scanf("%s",xx)!=EOF)
42     {
43         p=xx;
44         root=creat(p);
45         printf("%d\n",visit(root));
46     }
47     return 0;
48 }
49 
50 /***************************************************
51 User name: ***
52 Result: Accepted
53 Take time: 0ms
54 Take Memory: 160KB
55 Submit time: 2016-11-03 18:21:59
56 ****************************************************/

 

以上是关于SDUT 3342 数据结构实验之二叉树三:统计叶子数的主要内容,如果未能解决你的问题,请参考以下文章

SDUT 3341 数据结构实验之二叉树二:遍历二叉树

SDUT 3343 数据结构实验之二叉树四:还原二叉树

SDUT-3441_数据结构实验之二叉树二:遍历二叉树

SDUT 3346 数据结构实验之二叉树七:叶子问题

SDUT 3344 数据结构实验之二叉树五:层序遍历

SDUT 3340 数据结构实验之二叉树一:树的同构