微信扫码即可打开的网站如何做网站开发教育类

张小明 2026/1/10 15:36:35
微信扫码即可打开的网站如何做,网站开发教育类,广告制作流程步骤,中国黄页免费版题目描述有一个 n(n≤10^6) 个结点的二叉树。给出每个结点的两个子结点编号#xff08;均不超过 n#xff09;#xff0c;建立一棵二叉树#xff08;根节点的编号为 1#xff09;#xff0c;如果是叶子结点#xff0c;则输入 0 0。建好这棵二叉树之后#xff0c;请求出…题目描述有一个 n(n≤10^6) 个结点的二叉树。给出每个结点的两个子结点编号均不超过 n建立一棵二叉树根节点的编号为 1如果是叶子结点则输入0 0。建好这棵二叉树之后请求出它的深度。二叉树的深度是指从根节点到叶子结点时最多经过了几层。输入格式第一行一个整数 n表示结点数。之后 n 行第 i 行两个整数 l、r分别表示结点 i 的左右子结点编号。若 l0 则表示无左子结点r0 同理。输出格式一个整数表示最大结点深度。输入输出样例输入 #1复制7 2 7 3 6 4 5 0 0 0 0 0 0 0 0输出 #1复制4问题分析与核心思路本题要求计算给定二叉树的最大深度。我们采用广度优先搜索 (BFS)来解决因为它天然地按层级遍历。BFS 特性保证先访问层级低的节点后访问层级高的节点。深度计算在遍历过程中利用父节点的深度信息推算出子节点的深度父节点深度 1。最终答案所有节点中记录的最大层级值即为树的最大深度。 数据结构设计为了存储树结构和节点深度我们定义了结构体nodestruct node{ int l;//左儿子 int r;//右儿子 int level;//节点所在层级/深度 }a[1000001];a数组存储所有节点信息。queuenode q用于辅助 BFS 遍历。ma记录当前已知的最大深度。BFS 算法实现 (bfs函数)bfs函数实现了核心的层序遍历逻辑。1. 初始化将根节点编号 1入队并假设其深度已初始化为 1。2. 循环遍历使用while(!q.empty())进行循环。出队访问node tmpq.front(); q.pop();处理左儿子if(tmp.l!0){ // 检查左儿子是否存在 // 关键a[i].level 0 标记节点是否已访问 if(a[tmp.l].level0){ a[tmp.l].leveltmp.level1; // 新深度 父节点深度 1 q.push(a[tmp.l]); // 左儿子入队 mamax(ma,a[tmp.l].level); // 更新最大深度 } }处理右儿子处理逻辑与左儿子相同确保右儿子也入队并更新最大深度。3. 结果输出遍历完成后输出ma。完整代码流程在main函数中我们负责读取数据、初始化根节点深度并调用 BFS 函数。//洛谷P4913 【深基16.例3】二叉树深度 #include iostream #include queue using namespace std; struct node{ int l;//左儿子 int r;//右儿子 int level;//节点所在层次 }a[1000001]; int ma0; queuenode q; void bfs(int root){//根节点传进来 node tmp; tmpa[root]; q.push(tmp);//根节点入队 while(!q.empty()){ tmpq.front();//访问队首元素 q.pop();//队首出队 //得有左儿子 if(tmp.l!0) { //左儿子没有走过 if(a[tmp.l].level0){ a[tmp.l].leveltmp.level1; q.push(a[tmp.l]);//没有访问过就入队 mamax(ma,a[tmp.l].level); } } //得有右儿子 if(tmp.r!0){ //右儿子没有走过 if(a[tmp.r].level0){ a[tmp.r].leveltmp.level1; q.push(a[tmp.r]); mamax(ma,a[tmp.r].level); } } } coutma; } int main(){ int n; cinn; for(int i1;in;i) cina[i].la[i].r; a[1].level1; ma1; bfs(1); return 0; }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做网站网页尺寸是多少网站 目录访问

文章目录 《MongoDB 实战入门》第5章 进阶查询:聚合管道与数据统计分析 5.3 高级聚合场景实战 前置准备 场景1:按用户等级统计用户数量( g r o u p + group+ group+ match) 场景需求 数据准备(插入测试数据) 实战聚合代码 代码解析 预期结果 场景2:商品分类统计销量Top…

张小明 2026/1/10 5:55:06 网站建设

企业网站在线超市有没有什么专门做兼职的网站吗

LangFlow实现舆情监控系统的数据采集与分析 在社交媒体信息爆炸的今天,一条负面评论可能在几小时内演变为全网热议的公关危机。企业、政府和媒体机构迫切需要一种能快速感知舆论风向、识别情绪波动并提炼关键议题的技术手段。传统的舆情系统依赖规则匹配或传统NLP模…

张小明 2026/1/7 18:15:07 网站建设

网站开发先学什么网站收录了怎么做排名

企业级权限架构重构:从功能模块到业务能力的设计转型 【免费下载链接】pig 项目地址: https://gitcode.com/gh_mirrors/pig/pig 在企业级权限管理系统的演进过程中,传统基于功能模块的划分方式已难以满足现代微服务架构的复杂需求。本文将从业务…

张小明 2026/1/9 1:33:35 网站建设

三都网站建设新手做网站起步教程

Python 数据持久化与命令行工具开发全解析 一、数据持久化工具 在数据持久化方面,有 Storm 和 SQLAlchemy ORM 等工具可供选择。 (一)Storm 的使用 Storm 是一个数据持久化库。即使记录不是使用 Storm 库插入的,我们也可以期望它显示一条记录。 # 运行 storm_retrieve…

张小明 2026/1/7 18:11:02 网站建设

国外优秀设计网站教育网站集约化建设

从代码到内存:通用入门指南 1. 指针与数组在内存中的存储 在内存中,像 thinStringP (地址 0x01243040)和 wideStringP (地址 0x0124306C)这样的变量所存储的值仅 4 字节长,且不包含字符串数据。这是因为它们实际上是指向各自数组首字符的指针。例如, thinString…

张小明 2026/1/8 18:52:52 网站建设

php网站后台开发教程具有价值的响应式网站

3步掌握Vite多环境配置:从开发到生产的完整指南 【免费下载链接】vue-pure-admin 全面ESMVue3ViteElement-PlusTypeScript编写的一款后台管理系统(兼容移动端) 项目地址: https://gitcode.com/GitHub_Trending/vu/vue-pure-admin 在现…

张小明 2026/1/8 23:58:38 网站建设