先说思路:
有下面三种情况:
如果是空树,返回0;
如果只有一个根结点,即左右子树为空NULL,返回1;
如果左右子树不空,返回递归求左右子树叶子结点之和。

本题要求实现一个函数,可统计二叉树的叶子结点个数。

函数接口定义:

int LeafCount ( BiTree T);

T是二叉树树根指针,函数LeafCount返回二叉树中叶子结点个数,若树为空,则返回0。

裁判测试程序样例:

#include <stdio.h>
#include <stdlib.h>typedef char ElemType;
typedef struct BiTNode
{ElemType data;struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;BiTree Create();/* 细节在此不表 */int LeafCount ( BiTree T);int main()
{BiTree T = Create();printf("%d\n", LeafCount(T));return 0;
}
/* 你的代码将被嵌在这里 */

输出样例(对于图中给出的树):

3
int LeafCount ( BiTree T)
{int count=0;if(T==NULL){//空树return 0;}else if(T->lchild==NULL && T->rchild==NULL){//只有一个根节点return count+1;}else {count=LeafCount(T->lchild)+LeafCount(T->rchild);//关系为左右相加求和return count;}
}

6-5 统计二叉树叶子结点个数 (10 分)(C语言版)相关推荐

  1. 6-2 统计二叉树结点个数 (10分)_数据结构实验5_羊卓的杨

    6-2 统计二叉树结点个数 (10分) 本题要求实现一个函数,可统计二叉树的结点个数. 函数接口定义: int NodeCount ( BiTree T); T是二叉树树根指针,函数NodeCount ...

  2. 7-10 先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数 (10 分)

    7-10 先序序列创建二叉树,输出先序序列.中序序列.后序序列并输出叶子结点数 (10 分) 对于给定的二叉树,输出其先序序列.中序序列.后序序列并输出叶子结点数. 输入格式: 二叉树的先序遍历序列. ...

  3. c语言实现求二叉树叶子结点个数

    通过递归求解二叉树叶子结点个数,关键在于递归结束条件的设置. main.c #include<stdio.h>//定义结点类型 typedef struct BINARYNODE {cha ...

  4. 31行代码AC——PTA 求二叉树的叶子结点个数 (20分)——解题报告

    励志用尽量少的代码做高效的表达. 以二叉链表作为二叉树的存储结构,求二叉树的叶子结点个数. 输入格式: 输入二叉树的先序序列. 提示:一棵二叉树的先序序列是一个字符串,若字符是'#',表示该二叉树是空 ...

  5. 数据结构-二叉树(统计二叉树的结点个数递归与非递归算法)

    文章目录 思路 Java 实现 思路 求结点个数为什么能用递归? 二叉树求结点个数,从根结点开始,求二叉树结点个数,对于根结点就是求左右子树所有结点数之和再加一,对于左右子树又是如此计算,这样的形式满 ...

  6. 树与二叉树——二叉树中计算叶子结点个数问题

    1.已知完全二叉树具有967个结点,则其叶子结点个数为: 详解: 首先明确一点该二叉树是一棵二叉树,那可以使用二叉树的一些性质. 从第一层开始计算每层的节点个数:1,2,4,8,16,32,64,12 ...

  7. 二叉树的进阶操作---(求二叉树中所有结点个数,求叶子结点个数,求第k层结点个数;在二叉树中查找某一结点;层序遍历;判断是否为完全二叉树)

    typedef struct TreeNode {struct TreeNode *left;struct TreeNode *right;char val; }TreeNode;typedef st ...

  8. 入门二叉树,三种遍历,计算结点个数 ,深度 叶子结点个数,第k层结点个数

    1.关于二叉树的前中后序快速排序 那就在这里拿这张图来演示一下怎样快速写出中序遍历,我们都知道中序遍历是,左子树,根,右子树 B A C D E F H 最后直接得出结果DBEHACF 2.二叉树的五 ...

  9. 计算二叉树的第k层中所有叶子结点个数

    计算二叉树的第k层中所有叶子结点个数 Time Limit:1000MS Memory Limit:65535K 题型: 编程题 语言: 无限制 描述 二叉链表表示的二叉树:按先序次序输入二叉树中结点 ...

  10. 【数据结构】——二叉树的创建、计算叶子结点个数、递归遍历

    前面我们讲了关于数据结构中的堆栈问题,这篇文章主要是为大家简要介绍一下二叉树,并实现二叉树的创建.计算叶子结点个数.递归遍历.判断是否是完全二叉树等相关问题~ 一.二叉树的介绍 1.什么是二叉树 一棵 ...

最新文章

  1. C语言编程的几个小注意事项1
  2. python itchat 的使用
  3. 用计算机打出圣诞树,手机计算器圣诞树的祝福输入方式,手机计算器圣诞树获得方法...
  4. 程序员犯的非技术错误(Top 5)
  5. jQuery attributes(上)
  6. Unity5 Survival Shooter开发笔记(1)
  7. 开发运维都不得不知的MySQL索引和查询优化
  8. Spark 按key聚合求平均值与占比
  9. 纪念第一次用vscode给go语言配置环境踩坑
  10. 华创e路航固件_华创e路航地图升级
  11. gis 联合 融合_GIS空间数据融合方法
  12. 2G 3G和4G物联网卡之间的区别
  13. 樱花树下的约定歌词用计算机,樱花树下的约定歌词 可泽、夏凌兮_晴格歌词网...
  14. 海康威视SDK:NET_DVR_GetDVRConfig failed Device does not support this function
  15. 套接字相关数据据结构及分层模型
  16. Warm Audio EQP-WA 电子管均衡器中文视频
  17. IOS 一些小知识点整理
  18. 互联网诞生前,苏联最流行的11台个人电脑
  19. 初探下一代网络隔离与访问控制
  20. 计算机专业英语2017课后答案,计算机专业英语考试试题及答案

热门文章

  1. ESP32的智能药箱-WEB定时-舵机和语音控制-OLED实时时间显示
  2. 草图大师SketchUp2018下载和安装教程
  3. PyKeyBoardFairy可以替代你游戏中的卡键盘和鼠标宏
  4. Boost Asio快速入门
  5. 微型计算机usb接口通常串行,usb是串行接口吗_串行接口和并行接口有什么区别...
  6. cas 计算器 android,GeoGebra CAS计算器
  7. IPv6 地址通过ROS 路由器传递
  8. 简历是html的怎么改成word文档,word简历使用教程.doc
  9. oppoa79支持手机html,oppo a79驱动
  10. TAOCP-Reading-计算机程序设计艺术阅读-1-0