6-8 最宽层次结点数 分数 10
文章目录
- 1.题目描述
- 2.本题ac答案
- 2.1法一: 代码复用
- 2.2法二: 顺序队列实现层序遍历
- 3.C++层序遍历求最大宽度
- 3.1层序遍历代码
- 3.2求最大宽度
1.题目描述

2.本题ac答案
2.1法一: 代码复用

//二叉树第i层结点个数
int LevelNodeCount(BiTree T, int i)
{if (T == NULL || i < 1)return 0;if (i == 1) return 1;return LevelNodeCount(T->lchild, i - 1) + LevelNodeCount(T->rchild, i - 1);
}
int GetDepthOfBiTree(BiTree T)
{if (T == NULL)return 0;return GetDepthOfBiTree(T->lchild) > GetDepthOfBiTree(T->rchild) ? GetDepthOfBiTree(T->lchild) + 1: GetDepthOfBiTree(T->rchild) + 1;
}
int MaxWidth(BiTree T)
{int per = 0;int max = 0;for (int i = 1; i <= GetDepthOfBiTree(T); i++){per = LevelNodeCount(T, i);if (per > max)max = per;}return max;
}
2.2法二: 顺序队列实现层序遍历
int MaxWidth(BiTree T)
{if (T == NULL)return 0;BiTree queue[100] = { 0 };BiTree cur = NULL;int begin = 0, end = 0;int perLevel = 0, max = 0;//每入队一个结点 end++表示有效数据加一queue[end++] = T;//begin != end: 队中还有结点 还未取到上一层所有结点的子结点while (begin != end){perLevel = end - begin;if (perLevel > max)max = perLevel;//cur指向队头结点 (马上就要被遗弃 因为已经被访问)//begin++表示当前结点已被遍历 当前结点被遗弃cur = queue[begin++];if (cur->lchild)queue[end++] = cur->lchild; if (cur->rchild)queue[end++] = cur->rchild;}return max;
}
3.C++层序遍历求最大宽度
3.1层序遍历代码
void LevelTraverse(BiTNode* T)
{if (T == nullptr)return;queue<struct BiTNode*> q;q.push(T);while (!q.empty()){BiTNode* front = q.front();cout << front->data;q.pop();if (front->lchild)q.push(front->lchild);if (front->rchild)q.push(front->rchild);}cout << endl;
}
3.2求最大宽度
typedef char ElemType;
typedef struct BiTNode
{ElemType data;struct BiTNode* lchild, * rchild;
}BiTNode, * BiTree;
int MaxWidth(BiTree T)
{if (T == nullptr)return 0;queue<BiTree> q;q.push(T);int max = 0;while (!q.empty()){//当前层结点数int perLevel = q.size(); if (perLevel > max)max = perLevel;//for循环的作用://遍历当前栈中的结点 拿出一个结点node 把它的孩子入栈后就删除node//此时栈中存的结点是下一层结点for (int i = 0; i < perLevel; i++){BiTree front = q.front();q.pop();if (front->lchild) q.push(front->lchild);if (front->rchild)q.push(front->rchild);}}return max;
}
相关文章:
6-8 最宽层次结点数 分数 10
文章目录 1.题目描述2.本题ac答案2.1法一: 代码复用2.2法二: 顺序队列实现层序遍历 3.C层序遍历求最大宽度3.1层序遍历代码3.2求最大宽度 1.题目描述 2.本题ac答案 2.1法一: 代码复用 //二叉树第i层结点个数 int LevelNodeCount(BiTree T, int i) {if (T NULL || i < 1)re…...
Linux学习第28天:Platform设备驱动开发(二): 专注与分散
Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 三、硬件原理图分析 四、驱动开发 1、platform设备与驱动程序开发 53 /* 54 * 设备资源信息,也就是 LED0 所使用的所有寄存器 55 */ 56 static str…...
postgresql数组重叠(有共同元素)查询
直接上最终代码: select distinct id from a where string_to_array(in_area,,) && (select ARRAY_AGG( code) from areas where code like 11% or code 100000)::TEXT[] pg语法: 表 9.48显示了可用于数组类型的运算符。 表 9.48。数组运算符…...
ubuntu系统 生成RSA密钥对
在Ubuntu系统上生成密钥对通常指的是生成SSH密钥对,它常用于安全的远程登录、数据通信和其他安全网络操作。以下是如何在Ubuntu系统上生成SSH密钥对的步骤: 打开终端:你可以使用快捷键 Ctrl Alt T 在Ubuntu上打开一个终端窗口。 运行ssh-k…...
【RtpSeqNumOnlyRefFinder】webrtc m98: ManageFrameInternal 的帧决策过程分析
Jitterbuffer(FrameBuffer)需要组帧以后GOP内的参考关系 JeffreyLau 大神分析 了组帧原理而参考关系(RtpFrameReferenceFinder)的生成伴随了帧决策 FrameDecisionFrameDecision 影响力 帧的缓存。调用 OnAssembledFrame 传递已经拿到的RtpFrameObject 那么,RtpFrameObject…...
centos系统源码编译安装nginx,并编写服务脚本
1.安装编译所需的依赖项: yum install -y gcc pcre-devel openssl-devel zlib-devel2.下载 Nginx 源代码: wget http://nginx.org/download/nginx-1.21.3.tar.gz tar -xf nginx-1.21.3.tar.gz cd nginx-1.21.33.配置编译选项并进行编译和安装ÿ…...
2023下半年软考高项答题技巧!
2023下半年软考倒计时最后一天,一些软考高项答题技巧分享! 高项答题技巧 1、综合知识 (1)首先是分析试题的技巧 –先看清楚问题,再看选项; –判断题目到底考察的是什么知识点,排除干扰项。…...
windows server 2016调优
1. 增加TCP连接的最大数量: 在您当前的注册表路径(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters)中的右侧窗格,右击空白处,选择“新建” -> “DWORD (32位) 值”。为新的值命名为TcpNu…...
Qt 插件开发详解
1.简介 Qt插件是一种扩展机制,用于将应用程序的功能模块化,并且可以在运行时动态加载和卸载。Qt框架为插件提供了一套标准的接口和管理机制,使得插件的使用和集成变得简单和灵活,通过插件机制,可以将应用程序的功能划…...
vue需求:实现签章/签字在页面上自由定位的功能(本质:元素在页面上的拖拽)
目录 第一章 效果展示 第二章 了解工具 2.1 draggable 2.1.1 了解draggable 2.1.2 draggable方法 2.1.3 利用例子理解方法 第三章 效果实现 3.1 实现思路 3.2 代码实现 3.2.1 涉及到的点 3.2.2 源代 第一章 效果展示 效果描述:通过点击左边栏的签名和…...
【深度学习基础】Pytorch框架CV开发(1)基础铺垫
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...
uniapp原生插件之安卓热敏打印机打印插件
插件介绍 安卓热敏打印机打印插件,自动授权,打印机连接监听,打印文本,条形码,二维码,切纸,打印机状态,打印结果查询等 插件地址 安卓热敏打印机打印插件 - DCloud 插件市场 超级…...
巴菲特:卖比亚迪有助于资金配置
巴菲特表示,未来可能会有更多银行倒闭,但储户不必担心,他警告说,陷入困境的银行股不是价值投资,因为即使政府采取行动保护储户,股东的权益也会受到损失。他称,将加大对日本综合商社的投资&#…...
香港服务器有哪些特点
香港服务器具有以下特点: 速度快:香港服务器地理位置优越,与内地服务器相比,网络延迟更低,访问速度更快。 稳定性高:香港服务器位于全球重要的金融中心,网络环境稳定,服务器稳定性高…...
Leetcode76最小覆盖子串
思路:滑动窗口思想 1. 滑动窗口是什么:用一个滑动窗口为覆盖目标子串的字符串 2.怎么移动窗口:当不满足覆盖时右指针移动扩大范围,当覆盖了就移动左指针缩减范围直到再次不覆盖 3. 怎么判断是否覆盖:这里使用两个哈…...
GD32 单片机 硬件I2C死锁解决方法
死锁的复现方式 在I2C恢复函数下个断点(检测到I2C多次超时之后,应该能跳转到I2C恢复函数)使用镊子,将SCL与SDA短接,很快就能看到程序停到恢复函数的断点上,此时再执行恢复函数,看能否正常走出&…...
SPSS两相关样本检验
前言: 本专栏参考教材为《SPSS22.0从入门到精通》,由于软件版本原因,部分内容有所改变,为适应软件版本的变化,特此创作此专栏便于大家学习。本专栏使用软件为:SPSS25.0 本专栏所有的数据文件请点击此链接下…...
【vscode远程开发】使用内网穿透实现在公网环境下远程访问
文章目录 前言1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 前言 远程…...
KaiwuDB 内核解析 - SQL 查询的生命周期
一、概述 KaiwuDB 内核解析系列共分上下两部分,本文是该系列的第一部分,主要涵盖了网络协议到 SQL 执行器,解释 KaiwuDB 如何执行 SQL 查询,包括系统各个组件的执行路径(网络协议、SQL 会话管理、解析器、执行计划及优…...
2023.11.03 homework
小学4年级数学 1 2 3 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 19…...
RAG检索增强生成技术及应用
首先,是什么? RAG是模型生成回答前从指定知识库中精准抓取信息,再结合这些依据去生成内容,回答问题(给一个学霸配备一个随身图书馆,方便随时查阅) 核心就是:知识库(存资料…...
无需代码!用Qwen2.5-VL-7B-Instruct实现智能图片分析与物体检测
无需代码!用Qwen2.5-VL-7B-Instruct实现智能图片分析与物体检测 你是不是也遇到过这样的场景:手头有一堆图片,需要快速提取里面的文字、识别物体、或者描述图片内容?传统方法要么需要写代码调用API,要么得安装复杂的软…...
雪女-斗罗大陆-造相Z-Turbo实战:卷积神经网络(CNN)特征与生成图像的风格融合
雪女-斗罗大陆-造相Z-Turbo实战:卷积神经网络(CNN)特征与生成图像的风格融合 最近在玩一个挺有意思的东西,就是把现实世界照片里的“感觉”提取出来,然后让AI照着这个“感觉”去画一张斗罗大陆风格的画。听起来有点玄…...
SpringBoot+Vue实战:手把手教你搭建苍穹外卖后台管理系统(含Nginx配置避坑指南)
SpringBootVue全栈实战:从零构建外卖管理系统与Nginx部署精要 每次打开招聘网站,看到"要求有完整项目经验"的字样时,你是否也感到一阵心虚?作为全栈开发的学习者,我们往往陷入一个怪圈:学了很多碎…...
SQL Server数据库标记为SUSPECT的紧急修复指南:从单用户到多用户模式的完整恢复流程
1. 数据库被标记为SUSPECT的常见原因 数据库突然变成SUSPECT状态,就像电脑突然蓝屏一样让人措手不及。我遇到过最典型的情况是机房突然断电,导致SQL Server没来得及完成所有事务就强制关闭了。这种情况下,数据库引擎为了保护数据完整性&#…...
TikTok音乐提取全攻略:3分钟学会用DouK-Downloader分离音频
TikTok音乐提取全攻略:3分钟学会用DouK-Downloader分离音频 【免费下载链接】TikTokDownloader JoeanAmier/TikTokDownloader: 这是一个用于从TikTok下载视频和音频的工具。适合用于需要从TikTok下载视频和音频的场景。特点:易于使用,支持多种…...
Halcon读取条形码和二维码
读取条形码1创建条形码句柄create_bar_code_model(: : GenOaramName,GenParamValue: BarCodeHandle)2设置条形码参数GenParamName 设置的参数element_size_min 条形码最小单位,黑条之间的最小间距barcode_width_min条形码的最小宽度persistence 设置条形码的查找精度…...
CANopen协议实战指南:从对象字典到PDO映射
1. CANopen协议入门:从零理解工业通信基石 第一次接触CANopen协议时,我被它复杂的术语和抽象的概念搞得晕头转向。直到在某个电机控制项目中被迫深入使用后,才发现这套协议设计得如此精妙。CANopen本质上是一种建立在CAN总线上的应用层协议&a…...
TikTok GMXMAX广告优化全攻略
在2026年,TikTok广告投放逐渐向自动化模型演进,其中GMX MAX(GMV Max)成为很多团队用来提升ROI和放量的重要方式。相比传统广告模式,它可以自动完成受众匹配与预算分配,减少大量人工干预。不过在实际操作中&…...
QT实战:用QChartView快速打造动态折线图(附完整代码)
QT实战:用QChartView快速打造动态折线图(附完整代码) 在数据可视化领域,动态折线图因其直观展示数据变化趋势的能力,成为监控系统、金融分析、工业控制等场景的标配。QT框架提供的QChartView组件,让开发者能…...
