递归计算二叉树的叶子节点个数
#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)); /*递归地创建右子树*/
}
}
int getLeavesConut(BiTree T) {
int leftLeavesCount;
int rightLeavesCount;
if (T == NULL) {
return 0;
}else if (T->lchild == NULL && T->rchild == NULL) {
return 1;
}else {
leftLeavesCount = getLeavesConut(T->lchild);
rightLeavesCount = getLeavesConut(T->rchild);
return leftLeavesCount + rightLeavesCount;
}
}
main()
{
BiTree T = NULL; /*初始化T */
int count = 0;
printf("Input some characters to create a binary tree \n");
CreatBiTree(&T); /*创建一棵二叉树*/
count = getLeavesConut (T); /*计算二叉树中叶子结点的个数 */
printf("The number of leaves of BTree are %d\n",count);
getchar();
getchar();
}
递归计算二叉树的叶子节点个数相关推荐
- c++用递归计算二叉树的叶子节点的个数
c++用递归计算二叉树的叶子节点的个数 二叉树的叶子节点是左右节点均为NULL的节点,这也判断递归的条件,直接上代码 int num_tree(Btree *tree,int&count){i ...
- 分别采用递归和非递归方式编写两个函数,求一棵二叉树中叶子节点个数
分别采用递归和非递归方式编写两个函数,求一棵二叉树中叶子节点个数 #include #include #define MAXSIZE 50 typedef char datatype; typedef ...
- 统计二叉树的叶子节点个数
#include <iostream> #include <queue>using namespace std;typedef struct node {char data;s ...
- c#二叉树 取叶子节点个数_数据结构第四章:树与二叉树(二叉树的概念、性质、特殊二叉树)...
第四章:树与二叉树(二叉树的逻辑结构) 1.二叉树 二叉树是树结构的一种,故二叉树也是逻辑结构. 二叉树:二叉树是n(n≥0)个结点的有限集合. · 1)n=0时,二叉树为空; · 2)n>0时 ...
- c#二叉树 取叶子节点个数_二叉树的最小深度+完全二叉树的节点个数
二叉树的最小深度 题目:给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明:叶子节点是指没有子节点的节点. 示例 1: 输入:root = [3,9,20 ...
- c#二叉树 取叶子节点个数_两种类似但是原理不同的算法求二叉树的所有叶子节点和...
技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后到中级难度,最后到hard难度全部完. 目前我选择C语言,Python和Java作为实现语言,因为这三种 ...
- 给定一棵二叉树,计算该二叉树的深度、总节点个数和叶子节点个数。
// // binary_tree.cpp // BinaryTreeApp // // Created by ljpc on 2018/5/3. // Copyright © 2018年 ljpc. ...
- 二叉树(C++):创建,前中后序遍历(递归+非递归),获取叶子节点个数,获取树的高度
文章目录 前言 创建二叉树 先序遍历 中序遍历 后序遍历 获取叶子节点个数 获取树的高度 测试代码 前言 现有如下二叉树: 关于二叉树的相关操作,我们能够发现二叉树从根节点到子节点,以及每个中间节点基 ...
- 【数据结构】二叉树的节点总个数、叶子节点个数、第K层节点个数、二叉树的深度
目录 1.结点总个数 1.1 局部静态变量法 思维 代码 不足之处 2.传指针法 程序代码 3.递归法 思想 程序代码 详细过程 2.叶子节点个数 思想 程序代码 3.第K层节点个数 思想 程序代码 ...
- java 获取叶子节点个数_数据结构编程: 统计二叉树中叶子结点的个数。
展开全部 叶子节点:没有孩子节点的节点 也就是说,当我们明白了叶子节点的定义62616964757a686964616fe59b9ee7ad9431333363376531后,只需要遍历一遍二叉树,把 ...
最新文章
- 读后感与机翻《基于理论的因果迁移:结合实例级的归纳和抽象级的结构学习》
- 找出最具竞争力的子序列_力扣300——最长上升子序列
- 中国汽车产业数字化服务商研究报告及TOP50榜单
- python-模块-pymysql操作数据库
- WebService的两种用户验证方式
- Android开发技术周报 Issue#17
- 静态成员变量.xml
- dram和nand哪个难生产_终于有人说清楚了什么是DRAM、什么是NAND Flash
- VS2010 正式版 破解方法详解
- 游戏设计的100个原理(11-15)
- SQL Server~T-SQL编程基础
- xp计算机硬盘东西不显示,XP系统中认不到移动硬盘怎么办?XP系统无法识别移动硬盘解决方法...
- 领域驱动设计整理——概念架构
- update在python中是什么意思_update()与save()有什么区别
- 苍穹变服务器维护中,苍穹变7月1日更新维护公告
- 全局地址池 与接口地址池
- 【Windows网络调试笔记】如何打开Windows(Win10为例)的telnet客户端?
- BIOS密码的去除与破解
- 史上最全八大排序讲解时间复杂度篇(0基础都能看懂)
- 航天信息计算机设备如何入账,航天信息发票全额抵扣如何做账?
热门文章
- 【转】 C#泛型集合—Dictionary使用技巧
- Centos6 安装 Redis 和集群配置
- Reflector7.5.2.1的Bug
- 设置dedecms为动态页面,设置dedecms为静态页面,首页动态,列表动态和文章动态
- 设置导出目录oracle11g,Oracle11g不同目录的冷备份解决方案
- php指令,php命令行下的常用命令
- 苹果屏幕旋转怎么设置_iPhone12屏幕供应商是谁 苹果12屏幕怎么查看是哪家
- 最全计算机基础知识竞赛试题及答案,计算机基础知识竞赛试题.doc
- 浏览器打印设置横向打印_震旦打印机如何设置认证打印
- 【CF1324E】Sleeping Schedule(dp)