#include "string.h" 
#include "stdio.h" 
#include "malloc.h"

typedef struct BiTNode{
    char data;   /*结点的数据域*/
    struct BiTNode *lchild , *rchild;  /*指向左孩子和右孩子*/
} BiTNode , *BiTree;

void CreatBiTree(BiTree *T){
    char c;
    scanf("%c",&c);
    if(c == ' ') *T = NULL;
    else{
       *T = (BiTNode * )malloc(sizeof(BiTNode));  /*创建根结点*/
        (*T)->data = c;    /*向根结点中输入数据*/
        CreatBiTree(&((*T)->lchild));  /*递归地创建左子树*/
        CreatBiTree(&((*T)->rchild));  /*递归地创建右子树*/
    }
}

void getLeavesConut (BiTree T,int *count){
    if(T!=NULL && T->lchild==NULL && T->rchild==NULL){   /*访问到叶结点*/
        *count = *count + 1;
    }
    if(T){
        getLeavesConut (T->lchild,count);  /*先序遍历T的左子树*/
        getLeavesConut (T->rchild,count);  /*先序遍历T的右子数*/
    }
}

int getBiTreeLeavesCount(BiTree T) {
    int count = 0;                /*在主调函数中定义变量count,初始值为0*/
    getLeavesConut(T, &count);    /*调用递归函数getLeavesConut计算叶子结点个数*/
    return count;                /*返回叶子结点个数*/
}

main()
{
   BiTree T = NULL;                /*初始化T */
   int count = 0;
   printf("Input some characters to create a binary tree \n");
   CreatBiTree(&T);                /*创建一棵二叉树*/
   getLeavesConut (T,&count);    /*计算二叉树中叶子结点的个数 */
   printf("The number of leaves of BTree are %d\n",count);
   getchar();
   getchar();
}

计算二叉树的叶子结点个数相关推荐

  1. 计算二叉树的叶子结点个数_C++数据结构二叉树统计总结点个数,叶子结点个数,单分支结点个数,双分支结点个数。...

    很多书上其实都有提到和该算法.但是经过自己的学习我自己想到一个算法.算是结合了其中的优点吧. 算法描述:该算法递归去统计结点个数.值得一提的是该系列算法都是统计根结点以下的符和条件的结点的个数进行了加 ...

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

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

  3. 数据结构用递归算法计算二叉树中叶子结点数目的思想c语言程序,编写递归算法计算二叉树中叶子结点的数目。.doc...

    编写递归算法计算二叉树中叶子结点的数目. 学院名称专业班级实验成绩学生姓名学号实验日期课程名称数据结构实验题目2 树一.实验目的与要求 Cfree 三.实验内容和原理 [问题描述] [输入] &quo ...

  4. C/C++递归算法,计算二叉树中叶子结点的数目

    关键思路:叶子结点的度为0,即没有左孩子和右孩子 关键代码: int searchNum(BiTree T) {if (!T) return 0;else{int l, r;l=searchNum(T ...

  5. 编写递归算法,计算二叉树中叶子结点的数目

    编写递归算法,计算二叉树中叶子结点的数目 1 #include<iostream> using namespace std;typedef struct TNode//二叉树结构 {cha ...

  6. 求二叉树的叶子结点个数(C语言)

    输入格式: 输入二叉树的先序序列. 提示:一棵二叉树的先序序列是一个字符串,若字符是'#',表示该二叉树是空树,否则该字符是相应结点的数据元素. 输出格式: 输出有两行: 第一行是二叉树的中序遍历序列 ...

  7. 求二叉树的叶子结点个数

    7-5 求二叉树的叶子结点个数 (20 分) 以二叉链表作为二叉树的存储结构,求二叉树的叶子结点个数. 输入格式: 输入二叉树的先序序列. 提示:一棵二叉树的先序序列是一个字符串,若字符是'#',表示 ...

  8. 统计二叉树中叶子结点数数据结构C语言,统计二叉树中叶子结点个数的问题,

    #include #include typedef struct Node { int data; struct Node *LChild; struct Node *RChild; }BiTNode ...

  9. Java创建二叉树,并使用递归算法求二叉树中叶子结点的数目

    问题描述 创建二叉树,并使用递归算法求二叉树中叶子结点的数目 输入 输入一个用'.'来标明空子树的先根遍历序列,如ABD-EH-CF.I-G- 输出 叶子结点的个数 存储结构 二叉树 算法的基本思想 ...

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

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

最新文章

  1. 3D Cube计算引擎加速运算
  2. Kotlin的解析(下)
  3. ffmpeg把ts文件转m3u8并切片
  4. python中的wheel有什么用_什么是Python Wheels?为什么要学Python Wheels
  5. 没文化连广告都看不懂—“网易密码信破解”【续】
  6. Python基础(5) - 文件
  7. 一致 先验分布 后验分布_分布式事务常见解决方案与最终一致性
  8. EasyCriteria 2.0 – JPA标准应该很容易
  9. python分割字符串输出_python字符串分割
  10. jsp标签在JavaScript中使用时,可能会出现的一个问题。
  11. 关于Bugzilla WebService接口
  12. android开发那些事儿(二)--Drawable资源
  13. 怎么step into MFC Source code
  14. android 组态软件,Livzenwex安卓版组态软件
  15. 《Python参考手册》7 类与面向对象编程
  16. Sloth组件之NetRisc.Configuration
  17. Questasim覆盖率数据分析
  18. 体系结构学习笔记二:指令间相关性、相关性导致的冒险和隐藏冒险的方法(持续更新)
  19. 华北理工计算机学院官网,2019上半年华北理工大学计算机等级考试报名通知
  20. python+selenium实现自动输入关键字进行搜索

热门文章

  1. 克隆虚拟主机后的主机如何联网!!!!
  2. MaxCompute助力小影短视频走向全球化
  3. 45、我的C#学习笔记11
  4. 《HTML与CSS入门经典(第8版)》——2.5 测试Web内容
  5. Oracle技术之使用dd复制asm中文件
  6. js中中括号,大括号使用详解
  7. mergsort.c
  8. Java swing实现一组图片自动轮播
  9. java getSource()和 getActionCommand()区别
  10. new与delete函数使用方法以及注意事项