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

二叉树相关(1计算节点个数,2计算叶子结点个数,3求二叉树高度,求K层结点个数,4找那个值所在节点的指针) 阅读详情

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

Time Limit:1000MS  Memory Limit:65535K

题型: 编程题   语言: G++;GCC

描述

二叉链表表示的二叉树:按先序次序输入二叉树中结点的值,'#'字符表示空树,构造二叉链表表示的二叉树T(该二叉树中的结点为单个字符并且无值重复的结点),
编写算法完成:计算二叉树的第k层中所有叶子结点个数,根结点为第1层,根结点的孩子结点为第2层,依次类推。
#include "stdio.h"
#include "malloc.h"
#define TRUE 1
#define FALSE 0
#define OK  1
#define ERROR  0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int  Status;

typedef char  ElemType;
typedef struct BiTNode{
  ElemType data;
  struct BiTNode *lchild,*rchild;//左右孩子指针
} BiTNode,*BiTree;

Status CreateBiTree(BiTree &T) {  // 算法6.4
  // 按先序次序输入二叉树中结点的值(一个字符),’#’字符表示空树,
  // 构造二叉链表表示的二叉树T。
  char ch;
  scanf("%c",&ch);
  if (ch=='#') T = NULL;
  else {
    if (!(T = (BiTNode *)malloc(sizeof(BiTNode)))) return ERROR;
    ________________________ // 生成根结点
     _______________________   // 构造左子树
    _________________________  // 构造右子树
  }
  return OK;
} // CreateBiTree


int main()   //主函数
{
                      //补充代码
 }//main

输入格式

第一行输入先序次序二叉树中结点
第二行输入层次k

输出格式

第一行输出该二叉树的第k层中所有叶子结点个数

输入样例

ABC###D##
2

输出样例

1
#include <iostream>
using namespace std;
#define _CRT_SECURE_NO_WARNINGS
#include<cstdio>
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#define TRUE 1
#define FALSE 0
#define OK  1
#define ERROR  0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int  Status;
using namespace std;
typedef char  ElemType;

int sum[100]={0};

typedef struct BiTNode {
    ElemType data;
    struct BiTNode* lchild, * rchild;
} BiTNode, * BiTree;

Status CreateBiTree(BiTree& T) {  
    char ch;
    scanf("%c", &ch);
    if (ch == '#') T = NULL;
    else {
        if (!(T = (BiTNode*)malloc(sizeof(BiTNode)))) return ERROR;
        T->data = ch;
        CreateBiTree(T->lchild);   
        CreateBiTree(T->rchild); 
    }
    return OK;
} 

Status PreOrderTraverse(BiTree T) {
    if (T) {
        cout << T->data;
        PreOrderTraverse(T->lchild);
        PreOrderTraverse(T->rchild);
    }
    return OK;
} 

Status InOrderTraverse(BiTree T) {
    
    if (T) {
        InOrderTraverse(T->lchild);
        cout << T->data;
        InOrderTraverse(T->rchild);
    }
    return OK;
} 

Status PostOrderTraverse(BiTree T) {
    
    if (T) {
        PostOrderTraverse(T->lchild);
        PostOrderTraverse(T->rchild);
        cout << T->data;
    }
    return OK;
} 



void cnt(BiTree T,int c)
{


    if(!T->lchild&&!T->rchild)
    sum[c]++;
    if(T->lchild)
       cnt(T->lchild,c+1);
    if(T->rchild)
        cnt(T->rchild,c+1);
}




int main(void)
{
    BiTree T = new BiTNode;
    CreateBiTree(T);


    cnt(T,1);
    int n;



    cin>>n;
    cout<<sum[n]<<endl;


    return 0;
}

求二叉树中的结点个数、叶子结点个数、某结点层次和二叉树宽度 /** *    实验题目: *        求二叉树中的结点个数、叶子结点个数、某结点层次和二叉树宽度 *    实验目的: *        掌握二叉树遍历算法的应用,熟练使用先序、中序、后序三种递归 *    遍历算法和层次遍历算法进行二叉树问题求解。 *    实验内容: *        设计程序,实现如下功能: *    1、输出二叉树b的结点个数 *    2、输出二叉树b的叶子结... 阅读详情

相关推荐

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

题目描述 Description 二叉链表表示的二叉树:按先序次序输入二叉树中结点的值,’#'字符表示空树,构造二叉链表表示的二叉树T(该二叉树中的结点为单个字符并且无值重复的结点), 编写算法完成:计算二叉树的第k层中所有叶子结点个数,根结点为第1层,根结点的孩子结点为第2层,依次类推。 #include “stdio.h” #include “malloc.h” #define TRUE 1 ...

Leo_zehualuo的博客 763

华南农业大学 OJ数据结构 计算二叉树的第k层中所有叶子结点个数C/C++

17263 计算二叉树的第k层中所有叶子结点个数 时间限制:1000MS 代码长度限制:10KB 提交次数:0 通过次数:0 题型: 编程题 语言: G++;GCC Description 二叉链表表示的二叉树:按先序次序输入二叉树中结点的值,'#'字符表示空树,构造二叉链表表示的二叉树T(该二叉树中的结点为单个字符并且无值重复的结点)。 编写算法完成:计算二叉树的第k层中所有叶子结点个数,根结点为第1层,根结点的孩子结点为第2层,依次类推。 输入格式 第一行输入先序次序二叉树中结点 第二行输入层次

m0_52463794的博客 371

Gemini 3.1 Flash本地部署实操:Ollama+Open WebUI零门槛运行指南

大型语言模型(LLM)本地运行是指将模型权重下载至本地设备,通过推理引擎完成离线推理的过程;其核心原理依赖量化压缩(如GGUF格式)与轻量级运行时(如Ollama)实现CPU/GPU高效加载;技术价值在于低延迟响应、数据隐私可控及免网络依赖;典型应用场景包括办公提效(邮件/周报生成)、学生学习辅助、产品原型验证等边缘AI任务;本文聚焦Gemini 3.1 Flash这一面向消费级硬件优化的轻量模型变体,结合Ollama模型管理与Open WebUI图形界面,提供从环境准备、模型拉取到流式对话的完整新手实操路

weixin_32238157的博客 491

按先序序列寻找二叉树第k个结点(c++)

int i = 0; void Search_k(BiTree T, int k) { if (!T) return; i++; if (i == k) { cout << T->data; return; } Search_k(T->lchild, k); Search_k(T->rchild, k); }

weixin_46424226的博客 264

Silvaco Atlas新手入门:从安装到第一个半导体器件仿真(附DeckBuild配置)

本文为Silvaco Atlas新手提供了一份从软件安装、DeckBuild环境配置到完成第一个半导体器件仿真的实战指南。通过构建一个经典的PN结二极管案例,详细讲解了Atlas仿真语句的语法、核心命令顺序以及结果调试与可视化方法,帮助初学者快速上手并理解TCAD仿真流程。

sql99的博客 332

【D-OJ对不起系列】:求二叉树叶子节点个数 题目编号:983

建立一棵二叉树,用二叉链表存储二叉树,计算二叉树中包含的叶子结点个数。 输入描述 输入数据只有一组, 二叉树的结点均为一个数字, 数据为0代表当前结点为空。输入结点的值按照二叉树的先序遍历顺序, 比如输入: 1 2 4 0 0 5 0 0 3 0 6 0 0,0表示空,输入的数字之间由空格分隔 输出描述 输出的数据只有一个,占一行,即为叶子节点的个数 输入样例 1 2 4 0 0 5 0 0 3 0 6 0 0 输出样例 3 思路:水 ...

有朋自远方来,不亦乐乎。 573

微波无源器件 功分器1 新型方波导双模无功功分器

本名证明了一种基于有着特定功能的(dedicated)T性匹配元件(散射件)的进化结点的新型波导双模两路功分器的可行性。这个散射件,有着面向三个部分的匹配部分,提供了等效功分并且朝着对应的输出端口传输矩形波导的两个TE10/TE01正交模式。所提出的设计紧凑,易于比例变化并且能够级联来获得。

qq_45245770的博客 1391

数据结构实验之二叉树三:统计叶子数 // oj3342

原题链接:oj3342 数据结构实验之二叉树三:统计叶子数 Description 已知二叉树的一个按先序遍历输入的字符序列,如abc,de,g,f, (其中,表示空结点)。请建立二叉树并求二叉树的叶子结点个数。 Input 连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。 Output 输出二叉树的叶子结点个数。 Sample Input abc,de,g,f, Output 3 #include <stdio.h> #include <stdlib.h> #incl

Gverzh的博客 237

TwinCAT3 Modbus-TCP Client/Server使用

/起始地址是12289//起始地址是12294。

panjinliang066333的博客 7733

【3DSlicer】基于心脏ct影像重建3d模型及导出

软件:3DSlicer4.11 基于心脏ct影像重建3d模型

Liuees的博客 1万+

东华大学上机题——计算叶子节点数目

东华大学上机题——计算叶子节点数目 题目描述: 从数据结构中树的定义可知,除根节点外,树中的每个节点都有唯一的一个双亲结点。根据这一特性,可用一组连续的存储空间(一维数组)存储树中的各节点。树中的结点除保存本身结点的信息外,还要保存其双亲结点在数组中的位置(即在数组中的下标。双亲的信息为-1则表示该结点为根节点),树的这种表示方法称为双亲表示法。 树中的每个结点的数据类型定义如下: struct ...

weixin_45295612的博客 619

【YOLOv11改进- 主干网络】YOLOv11+WTConv(ECCV2024): 基于YOLOv11的主干网络改进,大感受野的小波卷积

论文提出了WTConv,这是一个使用级联小波分解的层,并执行一组小卷积核的卷积,每个卷积专注于输入的不同频率带,并具有越来越大的感受野。这个过程能够在输入中对低频信息给予更多重视,同时仅增加少量可训练参数。实际上,对于一个  的感受野,可训练参数数量只随着  的增长而呈对数增长。而WTConv与常规方法的参数平方增长形成对比,能够获得有效的卷积神经网络(CNN),其有效感受野(ERF)大小前所未有。

qq_41304809的博客 1401

计算二叉树的第k层中所有叶子结点个数,根结点为第1层

题目:计算二叉树的第k层中所有叶子结点个数,根结点为第1层【14分】(2)递归需要传入的数据是:左孩子或者右孩子,以及还需递归的层数。(1)递归结束的条件:当节点为空,到达K层的时候结束本次递归。(3)每轮递归结束后都需要把左右孩子的叶子数相加再返回。

小源同学的博客 1002

2025爬虫实战:某音直播间实时弹幕获取原理及源码分析

某音直播弹幕虽然没有直接挂在 DOM 上,但由于用的是西瓜播放器,弹幕是通过 JS 接口动态渲染的,这就给了我们 Hook 的机会。关键点是找到调用的位置,然后拦截并输出对象里的message字段。这个思路其实也适用于其他前端渲染的播放器,比如 B 站的 DPlayer、HLS.js、甚至很多自研播放器都有类似结构。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1811

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

计算二叉树的第k层中所有叶子结点个数 Time Limit:1000MS Memory Limit:65535K 题型: 编程题 语言: 无限制 描述 二叉链表表示的二叉树:按先序次序输入二叉树中结点的值,’#'字符表示空树,构造二叉链表表示的二叉树T(该二叉树中的结点为单个字符并且无值重复的结点), 编写算法完成:计算二叉树的第k层中所有叶子结点个数,根结点为第1层,根结点的孩子结点为第2...

weixin_46638265的博客 5332

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

二叉树k层的叶子结点个数

层序遍历二叉树,记录某层的二叉树叶子结点个数。没有目标层时,让该层结点的孩子结点入队;到达目标层时,不再让该层的孩子结点入队,统计队中(该层)叶子结点的个数。假设二叉树采用二叉链表存储结构,设计一个算法求其指定的第k层(k>1,跟是第1层)的叶子结点个数。设置一个全局变量记录某层叶子结点个数,前序遍历二叉树,并在遍历的过程中记录结点的层数。

韩江雪de 小屋 873

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【数据结构】二叉树的节点数,叶子数,第K层节点数,高度,查找x节点,判断是否为完全二叉树等方法

二叉树的节点数,叶子数,第K层节点数,高度,查找x节点,判断是否为完全二叉树等方法

luhaoran814的博客 4547

SCAU------17263 计算二叉树的第k层中所有叶子结点个数

Description 二叉链表表示的二叉树:按先序次序输入二叉树中结点的值,’#'字符表示空树,构造二叉链表表示的二叉树T(该二叉树中的结点为单个字符并且无值重复的结点),编写算法完成:计算二叉树的第k层中所有叶子结点个数,根结点为第1层,根结点的孩子结点为第2层,依次类推。 #include “stdio.h” #include “malloc.h” #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASI

zg 771

【数据结构】(二叉树)计算结点|叶子结点|高度|第K层结点数

对于深度为K 的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对 应时称之为完全二叉树。也就是 说,如果一个二叉树的层数为K,且结点总数是 ,则它就是满二叉树。前序遍历是先访问根节点,再访问左子树,左子树根结点访问完后 才会访问左子树结点然后右子树结点;4. 若规定根节点的层数为1,具有n个结点的满二叉树的深度h = log2(n+1);2. 若规定根节点的层数为1,则深度为h的二叉树的最大结点数是 2^(h-1);左子树结点数+右子树结点数 + 根节点;

m0_67367079的博客 3849

java中二叉树中第k大的数_求二叉树第K层的节点数和二叉树第K层的叶子节点数,递归和非递归...

求二叉树第K层的节点数和二叉树第K层的叶子节点数,递归方式和非递归方式。1、二叉树定义typedef struct BTreeNodeElement_t_ {void *data;} BTreeNodeElement_t;typedef struct BTreeNode_t_ {BTreeNodeElement_t *m_pElemt;struct BTreeNode_t_ *m_pLeft...

weixin_39790738的博客 273

二叉树的基础知识

对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从0至n-1的结点一一对应时称之为完全二叉树。双亲结点或者父节点:若一个结点含有子节点,则这个结点的就称为子节点的父节点,上述图中A就是BCD的父节点。1. 某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为( B)叶子结点或者终端结点:度为0的结点称为叶子结点,上述图中 H I J K L 都是叶子结点。结点的层次:从根节点开始,根为第一层,根的子结点为第二层,以此类推。

qq_63525426的博客 798

【数据结构】二叉树的基本操作大全,学会二叉树基本操作这一篇就够了:二叉树前序、中序、后序、层次遍历;求二叉树总结点个数,叶子结点个数,二叉树第k层的结点个数;求二叉树的高度;在二叉树中查找值为x的结点

【数据结构】二叉树的基本操作大全,学会二叉树基本操作这一篇就够了:二叉树前序、中序、后序、层次遍历;求二叉树总结点个数,叶子结点个数,二叉树第k层的结点个数;求二叉树的高度;在二叉树中查找值为x的结点

2301_76606232的博客 6022

二叉树的基本操作(如何计算二叉树的结点个数,二叉树的高度)

讲解二叉树中如何计算二叉树的结点个数,叶子结点的个数,二叉树的高度,第k层结点的个数,以及在二叉树中如何查找查找目标值.

@初阶牛的博客 6609

二叉树的结点个数、叶子结点个数的代码实现<分治算法>

分治算法是一种将问题划分为更小的子问题,并通过解决子问题来解决原始问题的算法设计策略,​由于子问题与原问题在结构和解法上的相似性,用分治方法解决的问题,大都采用了递归的形式

m0_73975164的博客 1460
上一篇: scau:程序设计与算法基础 学习笔记
下一篇: 2 删除相关子树算法
zero_019
博客等级 码龄3年 350粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zero_019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值