#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. python开源库推荐_推荐5个值得关注的Python开源项目
  2. 22. loacte命令
  3. FP error code老是忘记的看这里:只给出最常用的几个。
  4. 关于Python生成器的一个小问题(StopIteration)
  5. treemap怎么保证有序_你对多线程熟悉吗,谈谈线程安全中的原子性,有序性和可见性?...
  6. 配置Log4j(很详细)1
  7. HVM is required for this operation - Run Xen on Nested System
  8. Spring整合ActiveMQ之嵌入(二)
  9. 站点技术---301重定向
  10. Go 关键字 Select
  11. 访问oracle索引需要什么权限,Oracle索引 权限
  12. Ps快捷键及基础知识
  13. 从零开始javaweb项目——毕业设计参考指南
  14. Linux虚拟机设置全屏
  15. 千岛湖2日团建旅行!游览天下第一秀水,感受湖岛遍布的磅礴气势!_团建拓展_嗨牛团建_杭州站...
  16. STM32F103C8T6 操作矩阵键盘
  17. f5双机配置_F5负载均衡器双机切换机制及配置
  18. php 抓取百度收录数,PHP简单获取网站百度和搜狗收录量的方法
  19. 未来已来?走进元宇宙入口 - 虚拟数字人
  20. 我的C++实践(11):存放异类对象的元组类型

热门文章

  1. 转:在windows中将tree命令加入git-bash中
  2. 服务器未能识别 HTTP 标头 SOAPAction 的值
  3. 【转】VMware Fusion Professional 10 序列号
  4. Linux使用信号量监控程序异常退出
  5. win8:添加WinJS控件
  6. Exchange邮箱数据库事务日志引起磁盘暴涨
  7. c/c++基础篇--------------------------数据类型与变量类型
  8. python模拟三次输入密码_python 3.0 模拟用户登录功能并实现三次错误锁定
  9. r 中文乱码_配置R语言环境,这一篇就够了!
  10. pyqt5 tablewidget 设置行高_Python+PyQt5基础开发(10)