总结8..

#include <stdio.h>
// 定义结构体表示二叉树节点,包含左右子节点编号
struct node {
int l;
int r;
} tree[100000];
// 全局变量记录二叉树最大深度,初始为0
int ans = 0;
// 深度优先搜索函数
// pos: 当前节点在数组中的位置,deep: 当前深度
void dfs(int pos, int deep) {
// 若为叶子节点
if (tree[pos].l == 0 && tree[pos].r == 0) {
if (deep > ans) ans = deep; // 更新最大深度
return;
}
dfs(tree[pos].l, deep + 1); // 递归搜索左子树
dfs(tree[pos].r, deep + 1); // 递归搜索右子树
}
int main() {
int n;
scanf("%d", &n); // 输入节点数
// 输入每个节点的左右子节点编号
for (int i = 1; i <= n; i++) {
scanf("%d %d", &tree[i].l, &tree[i].r);
}
dfs(1, 1); // 从根节点开始搜索,初始深度为1
printf("%d\n", ans); // 输出最大深度
return 0;
}

#include <stdio.h>
// 定义结构体 node 表示二叉树的节点,每个节点包含左子节点 l 和右子节点 r
struct node {
char l;
char r;
} tree[200];
// 深度优先搜索函数,用于实现二叉树的先序遍历(根 - 左 - 右)
// pos: 当前正在处理的节点值
void dfs(char pos) {
// 输出当前节点的值,实现先序遍历中先访问根节点的操作
printf("%c", pos);
// 如果当前节点的左子节点不是 '*'(这里 '*' 表示空节点),则递归遍历左子树
if (tree[pos].l!= '*') {
dfs(tree[pos].l);
}
// 如果当前节点的右子节点不是 '*'(这里 '*' 表示空节点),则递归遍历右子树
if (tree[pos].r!= '*') {
dfs(tree[pos].r);
}
}
int main() {
int n;
char a, b;
// 读取二叉树的节点个数
scanf("%d", &n);
// 循环读取每个节点的信息
for (int i = 1; i <= n; i++) {
// 读取当前节点的值
scanf(" %c", &a);
// 记录第一个节点的值,作为二叉树的根节点
if (i == 1) {
b = a;
}
// 读取当前节点的左子节点和右子节点的值
scanf("%c%c", &tree[a].l, &tree[a].r);
}
// 从根节点开始进行深度优先搜索(先序遍历)
dfs(b);
return 0;
}
相关文章:
总结8..
#include <stdio.h> // 定义结构体表示二叉树节点,包含左右子节点编号 struct node { int l; int r; } tree[100000]; // 全局变量记录二叉树最大深度,初始为0 int ans 0; // 深度优先搜索函数 // pos: 当前节点在数组中的位置,…...
RabbitMQ 仲裁队列 -- 解决 RabbitMQ 集群数据不同步的问题
1.问题情景 当我们搭建了一个 RabbitMQ 集群后是存在问题的,也就是数据不同步.我们可以来看下是什么问题 1. 1 添加队列 ①:选择虚拟机(需要保证操作⽤户对当前虚拟机有操作权限) ②:设置队列名称 ③:持久化队列 ④:指定队列所在主节点,其他为从节点分别以 rabbit 节点和 rabb…...
1_相向双指针_leetcode_15_2
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1&…...
环境变量配置与问题解决
目录 方法 配置了还是运行不了想要的东西 解决方案 为什么 解决方案 方法 方法一:此电脑右击-属性-相关链接-高级系统设置-环境变量(N)-系统变量里面找到Path-三个确定】 方法二:winr cmd 黑框输入sysdm.cpl,后面…...
js 数据组合,一级结构组合成父子嵌套数组结构
1.方法 buildDeptTree(deptData) { //构建树状部门// 创建一个 map 来存储 deptId 和对应的部门对象const deptMap new Map();// 初始化每个部门对象的 children 属性为空数组deptData.forEach(dept > {dept.children [];deptMap.set(dept.deptId, dept);});// 构建树形结…...
Python GUI 开发 | PySide6 PyQt6 学习手册
本文是个 Python GUI 开发的目录,方便读者系统性学习的,笔者后续会满满填充此目录中的内容,感兴趣的小伙伴可以关注一手。(主要是偏向 PySide6 方向的) 0x01:PySide6 & PyQt6 基础入门 0x0101ÿ…...
mysql如何修改密码
在MySQL中修改密码可以通过多种方式完成,具体取决于你的MySQL版本和你是否有足够的权限。以下是一些常用的方法来修改MySQL用户的密码: 方法1: 使用ALTER USER命令 这是最常用的方法,适用于MySQL 5.7及以上版本。 ALTER USER usernameloca…...
Linux 部署 Java 项目:Tomcat、Redis、MySQL 教程
在 Linux 服务器上部署 Java 项目通常需要配置应用服务器(如 Tomcat)、数据库(如 MySQL)和缓存服务器(如 Redis)。本文将详细介绍如何在 Linux 环境中部署一个 Java 项目,涵盖 Tomcat、Redis 和…...
扣子平台音频功能:让声音也能“智能”起来
在数字化时代,音频内容的重要性不言而喻。无论是在线课程、有声读物,还是各种多媒体应用,音频都是传递信息、增强体验的关键元素。扣子平台的音频功能,为开发者和内容创作者提供了一个强大而灵活的工具,让音频的使用和…...
mongoDB常见指令
即使我们自己开发用不到mongoDB,但是接手别人项目的时候,别人如果用了,我们也要会简单调试一下 虽然mongoDB用的不是sql语句,但语句的逻辑都是相似的,比如查看数据库、数据表,增删改查这些 我们下面以doc…...
【线上问题定位处理】及【性能优化】系列文章
目录 性能优化 性能优化 九大服务架构性能优化方式 如何进行GC调优 如何排查线上系统出现的Full GC MySQL - 性能优化 MySQL - 分库分表 大数据查询的处理方案 MySQL优化手段有哪些 服务CPU100%问题如何快速定位? 服务内存OOM问题如何快速定位? JVM调优6大步骤 线…...
实验二 数据库的附加/分离、导入/导出与备份/还原
实验二 数据库的附加/分离、导入/导出与备份/还原 一、实验目的 1、理解备份的基本概念,掌握各种备份数据库的方法。 2、掌握如何从备份中还原数据库。 3、掌握数据库中各种数据的导入/导出。 4、掌握数据库的附加与分离,理解数据库的附加与分离的作用。…...
RubyFPV开源代码之系统简介
RubyFPV开源代码之系统简介 1. 源由2. 工程架构3. 特性介绍(软件)3.1 特性亮点3.2 数字优势3.3 使用功能 4. DEMO推荐(硬件)4.1 天空端4.2 地面端4.3 按键硬件Raspberry PiRadxa 3W/E/C 5. 软件设计6. 参考资料 1. 源由 RubyFPV以…...
php代码审计2 piwigo CMS in_array()函数漏洞
php代码审计2 piwigo CMS in_array()函数漏洞 一、目的 本次学习目的是了解in_array()函数和对项目piwigo中关于in_array()函数存在漏洞的一个审计并利用漏洞获得管理员帐号。 二、in_array函数学习 in_array() 函数搜索数组中是否存在指定的值。 in_array($search,$array…...
第25章 测试驱动开发模式深度剖析
写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…...
PHP校园助手系统小程序
🔑 校园助手系统 —— 智慧校园生活 📱一款基于ThinkPHPUniapp框架深度定制的校园助手系统,犹如一把智慧之钥,专为校园团队精心打造,解锁智慧校园生活的无限精彩。它独家适配微信小程序,无需繁琐的下载与安…...
转换算术表达式
文章目录 构造二叉树表示的算术表达式:按先序次序输入二叉树中结点的值(操作数及运算符均以一位字符表示,注意转换), #字符表示空树,如上图的算术表达式 输入2##*3##4## 输入格式 第一行输入表示要计算的算术表达式的二叉树结点的…...
【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.2 ndarray解剖课:多维数组的底层实现
1.2 《ndarray解剖课:多维数组的底层实现》 内容介绍 NumPy 的 ndarray 是其核心数据结构,用于高效处理多维数组。在这篇文章中,我们将深入解析 ndarray 的底层实现,探讨其内存结构、维度、数据类型、步长等关键概念,…...
计算机网络 (61)移动IP
前言 移动IP(Mobile IP)是由Internet工程任务小组(Internet Engineering Task Force,IETF)提出的一个协议,旨在解决移动设备在不同网络间切换时的通信问题,确保移动设备可以在离开原有网络或子网…...
css粘性定位超出指定宽度失效问题
展示效果 解决办法:外层容器添加display:grid即可 完整代码 <template><div class"box"><div class"line" v-for"items in 10"><div class"item" v-for"item in 8">drgg</div>&…...
10 Hyperledger Fabric 介绍
简介 HypeLedger(超级账本)是由Linux基金会2015年创建的首个面向企业应用场景的开源分布式账本平台。 HypeLedger Fabric是HypeLedger种的区块链项目之一HypeLedger Fabric引入权限管理在架构设计上支持可插拔、可扩展是首个面向联盟链场景的开源项目 …...
AI Agent的多轮对话:提升用户体验的关键技巧
在前面的文章中,我们讨论了 AI Agent 的各个核心系统。今天,我想聊聊如何实现一个好用的多轮对话系统。说实话,这个话题我琢磨了很久,因为它直接影响到用户体验。 从一个槽点说起 还记得我最开始做对话系统时的一个典型场景&…...
分布式光纤应变监测是一种高精度、分布式的监测技术
一、土木工程领域 桥梁结构健康监测 主跨应变监测:在大跨度桥梁的主跨部分,如悬索桥的主缆、斜拉桥的斜拉索和主梁,分布式光纤应变传感器可以沿着这些关键结构部件进行铺设。通过实时监测应变情况,能够精确捕捉到车辆荷载、风荷…...
机器学习10-解读CNN代码Pytorch版
机器学习10-解读CNN代码Pytorch版 我个人是Java程序员,关于Python代码的使用过程中的相关代码事项,在此进行记录 文章目录 机器学习10-解读CNN代码Pytorch版1-核心逻辑脉络2-参考网址3-解读CNN代码Pytorch版本1-MNIST数据集读取2-CNN网络的定义1-无注释版…...
面向程序员的Lean 4教程(2) - 数组和列表
面向程序员的Lean 4教程(2) - 数组和列表 上一节我们介绍了Lean4的基本语法,因为大部分程序员都有一定的编程基础,所以并没有介绍过细。这一节我们介绍Lean4中的线性表结构:数组和列表,顺带复习一下上一节的流程控制等内容。 数…...
【C++高并发服务器WebServer】-7:共享内存
本文目录 一、共享内存1.1 shmget函数1.2 shmat1.3 shmdt1.4 shmctl1.5 ftok1.6 共享内存和内存映射的关联1.7 小demo 二、共享内存操作命令 一、共享内存 共享内存允许两个或者多个进程共享物理内存的同一块区域(通常被称为段)。由于一个共享内存段会称…...
【力扣Hot 100】链表1
1. 相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交**:** !https://assets.leetcode-cn.com/aliyun-lc-upload/uplo…...
稀土抗菌剂:提升产品质量,保障公共健康
随着全球对抗菌技术需求的不断增长,传统的抗菌剂逐渐暴露出其局限性,包括耐药性、环境污染及副作用等问题。在此背景下,稀土抗菌剂作为一种新兴的抗菌材料,凭借其卓越的抗菌性能、环保特性以及应用多样性,正在成为各行…...
机器学习11-学习路径推荐
机器学习11-学习路径推荐 本文希望摒除AI学习商业宣传要素,推荐一条极简的AI学习路线!推荐内容均为在线免费内容,如果有条件可以咨询专业的培训机构! 文章目录 机器学习11-学习路径推荐[toc] 1-AI培训路线第一阶段 Python-人工智能…...
postgresql根据主键ID字段分批删除表数据
生产环境针对大表的处理相对比较麻烦。 方案1、直接truncate,可能会遇到系统卡主的情况,因为truncate的过程中会对表进行加锁,会导致数据不能正常的写入 方案2、创建一个同结构的表结构,rename旧表,不停业务rename表担…...
