二叉树之统计叶子数
2016-06-23 21:58
405 查看
数据结构实验之二叉树三:统计叶子数
Time Limit: 1000MS Memory limit: 65536K
题目描述
已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并求二叉树的叶子结点个数。输入
连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。输出
输出二叉树的叶子结点个数。示例输入
abc,,de,g,,f,,,
示例输出
3#include <stdio.h> #include <string.h> #include <malloc.h> typedef struct node { int data; struct node * left; struct node * right; } tree; char a[55],c; int ans,l; int sum; tree * creat(tree * head) { c=a[ans++]; if(c!=','&&ans<=l) { head=(tree*)malloc(sizeof(tree)); head->data=c; head->left=creat(head->left); head->right=creat(head->right); } else head=NULL; return head; } void yezi(tree * head) { if(head!=NULL) { if(head->left==NULL&&(head->right==NULL)) sum++; yezi(head->left); yezi(head->right); } } int main() { while(~scanf("%s",a)) { ans=0; sum=0; l=strlen(a); tree * head; head=creat(head); yezi(head); printf("%d\n",sum); } return 0; }
相关文章推荐
- AVL树-自平衡二叉查找树(Java实现)
- 文件遍历排序函数
- C#数据结构之顺序表(SeqList)实例详解
- Lua 学习笔记之C API 遍历 Table实现代码
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#遍历文件夹后上传文件夹中所有文件错误案例分析
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#中遍历Hashtable的4种方法
- C#数据结构之单链表(LinkList)实例详解
- Erlang中遍历取出某个位置的最大值代码
- 数据结构之Treap详解
- C++实现图的邻接矩阵存储和广度、深度优先遍历实例分析
- C++实现图的邻接表存储和广度优先遍历实例分析
- C语言二叉树的非递归遍历实例分析
- 使用C语言构建基本的二叉树数据结构
- 一波二叉树遍历问题的C++解答实例分享
- 举例讲解C语言程序中对二叉树数据结构的各种遍历方式
- 【数据结构与算法】数组应用4:多项式计算Java版