首页 > 其他分享 >求叶子结点个数

求叶子结点个数

时间:2023-10-16 19:56:58浏览次数:34  
标签:Count 结点 return CreateTree int 个数 叶子 NULL

递归求叶子结点个数

#include <stdio.h>
#include <stdlib.h>

typedef struct node{
    int data;
    struct node *lchild,*rchild;
}TreeNode,*Tree;

void CreateTree(Tree &T)        //先序创建二叉树,中序后序创建和递归遍历一样,只修改位置 
{
    int x;
    scanf("%d",&x);
    if(x==-1)
    {
        T=NULL;
        return;    
    }
    else
    {
        T=(TreeNode*)malloc(sizeof(TreeNode));
        T->data=x;
        printf("输入%d的左结点:",x);
        CreateTree(T->lchild);
        printf("输入%d的右结点:",x);
        CreateTree(T->rchild);
    }
}

int Count(Tree T)
{
    static int count=0;
    if(T==NULL)
        return 0;
    if(T->lchild==NULL&&T->rchild==NULL)
        count++;
        
    Count(T->lchild);
    Count(T->rchild);
    
    return count; 
}

int main()
{
    Tree T;
    CreateTree(T);
    printf("%d ",Count(T)); 
    return 0;    
} 

 

标签:Count,结点,return,CreateTree,int,个数,叶子,NULL
From: https://www.cnblogs.com/simpleset/p/17768210.html

相关文章

  • 年轻人的第一个车轱辘——比较两个数据库中表结构的不同并导出为Excel文件
    packagecom.example.demo;importlombok.Data;importorg.apache.commons.collections4.ListUtils;importorg.apache.poi.ss.usermodel.*;importorg.apache.poi.ss.util.CellRangeAddress;importorg.apache.poi.xssf.usermodel.XSSFWorkbook;importjava.io.FileO......
  • 【DFS】129. 求根节点到叶子结点的和
    链接https://leetcode.cn/problems/sum-root-to-leaf-numbers/description/思路时刻记住,DFS是递归的一种。而解决递归,最朴素的思路就是:递归的定义就是递归的解。题目要求我们求根节点到叶子结点的和,我们要提供一个值保持其状态,退出条件直接用题目给的限定即可。代码#Defin......
  • php读取txt随机一行一个数据输出
    php读取txt随机一行一个数据输出,代码如下<?phpfunctiongetline($file){$i=0;do{$data=file($file);$num=count($data);$id=mt_rand(0,$num-1);$shuju_text=chop($data[$id]);$i=strlen($shuju_text);}while($i<1);ech......
  • 学习C语言心得-自定义函数 输入两个数字求和
    输入两个数字求和#include<stdio.h>intsum(inta,intb){ returna+b;}intmain(){ inta=0; intb=0; printf("请输入ab的值:"); scanf("%d%d",&a,&b); intSum=sum(a,b); printf("Sum=%d",Sum); return0;}运行......
  • 各个数据库存二进制大文件的性能测试
    1前言​有个项目软件前端将二进制大文件存在了indexDB,每次给后端传文件(需要传到底层C++进行调用)都会导致内存占用飙升,想着使用前后端都能共同操作的数据库来解决这个内存占用的问题,并且希望这个更具尽可能的轻量,可以嵌入到程序中是最好的,通过一个安装包进行安装。2各个数据......
  • 解决两个数相加,减,乘,除精度丢失问题
    /***解决两个数相加精度丢失问题*@parama*@paramb*@returns{Number}*/functionfloatAdd(a,b){varc,d,e;if(undefined==a||null==a||""==a||isNaN(a)){a=0;}if(undefined==b||null==b||""==b||isNaN(b)){b=0;}try......
  • 力扣19.删除链表的倒数第 N 个结点
    给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5] 示例2:输入:head=[1],n=1输出:[] 示例3:输入:head=[1,2],n=1输出:[1]  提示:链表中结点的数目为 sz1<=sz<=300<=N......
  • AugLy 是fb的一个数据增强库
    AugLy是一个数据增强库,目前支持四种模式(音频、图像、文本和视频)和100多种增强。每个模态的扩充都包含在其自己的子库中。这些子库包括基于函数和基于类的变换、组合运算符,并且可以选择提供有关所应用变换的元数据,包括其强度。AugLy是一个很棒的库,可用于在模型训练中扩充数据,或......
  • 2023-10-11:用go语言,一个数字n,一定要分成k份, 得到的乘积尽量大是多少? 数字n和k,可能非常
    2023-10-11:用go语言,一个数字n,一定要分成k份,得到的乘积尽量大是多少?数字n和k,可能非常大,到达10^12规模。结果可能更大,所以返回结果对1000000007取模。来自华为。来自左程云。答案2023-10-11:大体过程如下:算法1:暴力递归1.首先判断k是否为0或者n是否小于k,若是则返回-1。2.调用递归函数pr......
  • 2023-10-11:用go语言,一个数字n,一定要分成k份, 得到的乘积尽量大是多少? 数字n和k,可能非常
    2023-10-11:用go语言,一个数字n,一定要分成k份,得到的乘积尽量大是多少?数字n和k,可能非常大,到达10^12规模。结果可能更大,所以返回结果对1000000007取模。来自华为。来自左程云。答案2023-10-11:大体过程如下:算法1:暴力递归1.首先判断k是否为0或者n是否小于k,若是则返回-1。2.调......