查找二叉树中第k层中度为1的节点数量(可运行)

注意!!!!!如果没有输出结果,一定是输入的建树序列有错误,我建好了2棵树,如果没有输出结果,大家可以用这两棵树试。

main函数的btDepth(t,2)第二个参数是树的层数了k,我这里输入的是2。

输入:abd###ce###

输出:2

树的形状:

大家还可以试一下这棵树:

输入:abd##e##cf###

输出:1

树的形状:

#include "bits/stdc++.h"
using namespace std;
typedef struct BiTNode{
    char data;
    struct BiTNode *lchild,*rchild;
    int tag;
}BiTNode,*BiTree;

void createTree(BiTree  &t){
    char ch;
    ch=getchar();
    if (ch=='#') t=NULL;
    else{
        t=(BiTNode *) malloc(sizeof (BiTNode));
        t->data=ch;
        t->tag=0;
        t->lchild=NULL;
        t->rchild=NULL;
        createTree(t->lchild);
        createTree(t->rchild);
    }
}
int btDepth(BiTree t,int k){
    if (!t)
        return 0;
    int front=-1,rear=-1;
    int last=0,level=0;
    int m=0;//
    BiTree Q[100];
    Q[++rear]=t;
    BiTree p;
    while (front<rear){
        p=Q[++front];
        if (p->lchild)
            Q[++rear]=p->lchild;
        if (p->rchild)
            Q[++rear]=p->rchild;
        if (front==last){
            level++;
            last=rear;
            if (level==k-1){
                while (front!=last+1){
                    p=Q[++front];
                    if (p->lchild==NULL&&p->rchild!=NULL||p->lchild!=NULL&&p->rchild==NULL)
                        m++;
                    if (p->lchild)
                        Q[++rear]=p->lchild;
                    if (p->rchild)
                        Q[++rear]=p->rchild;
                }

            }
        }
    }
    return m;
}
int main() {
  BiTree t;
  createTree(t);
    //btDepth(t);
  printf("%d", btDepth(t,2));

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/170481.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SAP创建权限对象、角色、并分配角色

一、SU20&#xff1a;维护权限字段 二、SU21创建权限对象,分配权限字段: 三、SU24关联程序和自建权限对象&#xff08;标准tcode会默认存在标准权限对象&#xff09; 四、PFCG创建角色 五、SU01给用户分配角色 一、su20&#xff1a;维护权限字段 X点新建&#xff1a; 填入…

什么是策划能力?如何提高策划能力?

什么是策划能力&#xff1f; 通常我们理解的策划能力&#xff0c;大多指的是策划活动&#xff0c;比如举办一次活动先要进行活动策划&#xff0c;形成具体的行动方案&#xff0c;然后开展组织人力物力等资源&#xff0c;最终落地实施。策划能力包含活动策划&#xff0c;但又不…

vscode设置前进、后退快捷键

前言 在我们使用vscode编写程序时&#xff0c;经常需要在不同的文件之间跳来跳去&#xff0c;如果只是依靠个人记忆去操作会显得非常不方便。本文介绍如何设置vscode的前进、后退快捷键。 1 vscode设置前进、后退快捷键 点击“设置”图标&#xff0c;然后点击“键盘快捷方式…

NX二次开发UF_CAM_ask_lower_limit_plane_data 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;里海NX二次开发3000例专栏 UF_CAM_ask_lower_limit_plane_data Defined in: uf_cam_planes.h int UF_CAM_ask_lower_limit_plane_data(tag_t object_tag, double origin [ 3 ] , double normal [ 3 ] ) overview 概述 Query …

NX二次开发UF_CAM_ask_lower_limit_plane_status 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;里海NX二次开发3000例专栏 UF_CAM_ask_lower_limit_plane_status Defined in: uf_cam_planes.h int UF_CAM_ask_lower_limit_plane_status(tag_t object_tag, UF_PARAM_lwplane_status_t * status ) overview 概述 Query the…

Ubuntu本地快速搭建web小游戏网站,公网用户远程访问

前言 网&#xff1a;我们通常说的是互联网&#xff1b;站&#xff1a;可以理解成在互联网上的一个房子。把互联网看做一个城市&#xff0c;城市里面的每一个房子就是一个站点&#xff0c;房子里面放着你的资源&#xff0c;那如果有人想要访问你房子里面的东西怎么办&#xff1…

酷开科技丨这么好用的酷开系统,不用真的会后悔!

掀开一幕幕精彩剧情&#xff0c;手机已经成为了我们身边必不可少的追剧神器。在这个信息爆炸的时代&#xff0c;我们渴望能够随时随地享受到精彩的影视作品&#xff0c;尤其是在家的休息的时候&#xff0c;希望电视也能同手机一样&#xff0c;想看啥就搜啥。酷开科技大内容战略…

基于可变形卷积和注意力机制的带钢表面缺陷快速检测网络DCAM-Net(论文阅读笔记)

原论文链接->DCAM-Net: A Rapid Detection Network for Strip Steel Surface Defects Based on Deformable Convolution and Attention Mechanism | IEEE Journals & Magazine | IEEE Xplore DCAM-Net: A Rapid Detection Network for Strip Steel Surface Defects Base…

关于使用宝塔页面Nginx的一些注意事项:Nginx不生效情况,以及解决方案

判断Nginx是否正常运行 使用宝塔页面保存Nginx配置后&#xff0c;有的时候不生效&#xff0c;这就说明Nginx没有正常运行 可以通过以下几种方式排查 通过宝塔 如果能够打开负载状态&#xff0c;说明Nginx运行正常 如果打不开&#xff0c;说明肯定是配置文件或者什么导致ngi…

探索人工智能领域——每日30个名词详解【day4】

目录 前言 正文 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&#x1f4da;。 &#x1f4e3;如需转载&#xff0c;请事先与我联系以…

ros2机器人上位机与下位机连接方式(转载)

从硬件连接、通信协议和软件设计开发&#xff0c;上位机如何控制下位机&#xff1f; 由你创科技2023-09-07 10:38广东 随着科技的不断发展&#xff0c;自动化控制系统已经广泛应用于各个行业。在自动化控制系统中&#xff0c;上位机和下位机是两个重要的组成部分。上位机主要…

NX二次开发UF_CAM_ask_opt_template_object 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;里海NX二次开发3000例专栏 UF_CAM_ask_opt_template_object Defined in: uf_cam.h int UF_CAM_ask_opt_template_object(UF_CAM_opt_t * opt_object ) overview 概述 This function provides the object which is used to in…

NX二次开发UF_CAM_ask_post_template_name 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;里海NX二次开发3000例专栏 UF_CAM_ask_post_template_name Defined in: uf_cam.h int UF_CAM_ask_post_template_name(const char * * post_template_filename ) overview 概述 This function provides the name of the file…

上位机下位机串口通信设计详解(转载)

直观学PLC • 来源&#xff1a;直观学PLC • 2023-02-21 09:55 • 4233次阅读 串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去&#xff0c;同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路&#xff0c;我们…

人工智能AI 全栈体系(十三)

第二章 计算机是如何学会下棋的 人类棋手在下棋时&#xff0c;会根据自己的经验只考虑在当前棋局下最重要的几个可能的走法&#xff0c;但是计算机没有这种经验。 知识太复杂了&#xff0c;需要考虑很多具体的情况&#xff0c;一旦知识总结的不到位&#xff0c;可能就会出现大…

【寒武纪(14)】硬件系统由标量指令、向量指令、张量指令、访存指令构成

我们在文档《Cambricon-BANG-C-Developer-Guide-EN-v4.5.1》的build-in function 发现&#xff0c;存在三种计算&#xff1a;矩阵乘法、标量类型、向量。 查阅《Cambricon-BANG-C-CProgramming-Guide-CN-v1.5.0.pdf》可知&#xff0c;硬件系统由标量指令、向量指令、张量指令、…

提升工作效率,使用AnyTXT Searcher实现远程办公速查公司电脑文件——“cpolar内网穿透”

文章目录 前言1. AnyTXT Searcher1.1 下载安装AnyTXT Searcher 2. 下载安装注册cpolar3. AnyTXT Searcher设置和操作3.1 AnyTXT结合cpolar—公网访问搜索神器3.2 公网访问测试 4. 固定连接公网地址 前言 你是否遇到过这种情况&#xff0c;异地办公或者不在公司&#xff0c;想找…

STM32 Flash

FLASH简介 Flash是常用的用于存储数据的半导体器件&#xff0c;它具有容量大&#xff0c;可重复擦写&#xff0c;按“扇区/块”擦除、掉电后数据可继续保存的特性。 常见的FLASH主要有NOR FLASH和NAND FLASH两种类型。NOR和NAND是两种数字门电路&#xff0c;可以简单地认为FL…

计算机毕业设计python企业员工人事管理系统vue

管理员&#xff1a; 1.员工资料管理&#xff1a;查看员工列表&#xff0c;添加职工&#xff0c;修改信息&#xff08;搜索员工使用模糊查询&#xff09; 2.部门管理&#xff1a;查看部门列表&#xff0c;修改信息&#xff0c;添加新部门 3.职工考勤管理&#xff1a;添加&#x…

你知道如何实现游戏中的透视效果吗?

引言 游戏中的透视效果可以合理运用CtrlCV实现。 不知道大家有没有这样一段经历&#xff1a;在做Cocos项目时需要一些特定的Shader去做一些特定的效果&#xff0c;例如透视、高光、滤镜等等&#xff0c;想自己写吧&#xff0c;不怎么会啊&#xff0c;网上又找不到&#xff0c…