总结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: 当前节点在数组中的位置,…...
谈谈对JavaScript 中的事件冒泡(Event Bubbling)和事件捕获(Event Capturing)的理解
JavaScript 中的事件冒泡(Event Bubbling)和事件捕获(Event Capturing),是浏览器在处理事件时采用的两种机制,它们在事件的传播顺序上有显著区别。这两种机制帮助开发者在事件触发时,能够以不同…...
tcp/ip协议和ip协议,tcp/ip协议 ip协议
TCP/IP协议和IP协议在网络通信中扮演着重要的角色,它们之间既有联系又有区别。以下是对两者的详细解释: TCP/IP协议 定义: TCP/IP协议(Transmission Control Protocol/Internet Protocol)是网络通信协议的一种&…...
【JavaEE进阶】Spring留言板实现
目录 🎍预期结果 🍀前端代码 🎄约定前后端交互接口 🚩需求分析 🚩接口定义 🌳实现服务器端代码 🚩lombok介绍 🚩代码实现 🌴运行测试 🎄前端代码实…...
【模型】RNN模型详解
1. 模型架构 RNN(Recurrent Neural Network)是一种具有循环结构的神经网络,它能够处理序列数据。与传统的前馈神经网络不同,RNN通过将当前时刻的输出与前一时刻的状态(或隐藏层)作为输入传递到下一个时刻&…...
软件测试压力太大了怎么办?
本文其实是知乎上针对一个问题的回答: 目前在做软件测试,主要负责的是手机端的项目测试,项目迭代很快,每次上线前验正式都会发现一些之前验测试包时候没有发现的问题,压力太大了,应该怎么调整 看过我之前其…...
ES6 类语法:JavaScript 的现代化面向对象编程
Hi,我是布兰妮甜 !ECMAScript 2015,通常被称为 ES6 或 ES2015,是 JavaScript 语言的一次重大更新。它引入了许多新特性,其中最引人注目的就是类(class)语法。尽管 JavaScript 一直以来都支持基于…...
【时时三省】(C语言基础)二进制输入输出
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 二进制输入 用fread可以读取fwrite输入的内容 字符串以文本的形式写进去的时候,和以二进制写进去的内容是一样的 整数和浮点型以二进制写进去是不一样的 二进制输出 fwrite 字…...
【2024年华为OD机试】(A卷,200分)- 农场施肥 (JavaScriptJava PythonC/C++)
一、问题描述 题目描述 某农场主管理了一大片果园,fields[i] 表示不同果林的面积,单位:平方米(m)。现在需要为所有的果林施肥,且必须在 n 天之内完成,否则会影响收成。小布是果林的工作人员,他每次选择一片果林进行施肥,且一片果林施肥完后当天不再进行施肥作业。 …...
k8s服务StatefulSet部署模板
java 服务StatefulSet部署模板 vim templates-test.yamlapiVersion: apps/v1 kind: StatefulSet metadata:labels:app: ${app_labels}name: ${app_name}namespace: ${app_namespace} spec:replicas: ${app_replicas_count}selector:matchLabels:app: ${app_labels}template:la…...
跟我学C++中级篇——C++初始化的方式
一、初始化的方式 在前面的初级篇中对C的初始化有过一个说明。但随着新标准的迭代以及新的方式的应用,本篇对初始化再做一次整体的总结。下面把C的初始化按照时间线进行一个划分: 1、早期初始化 这种初始化中,开发者一般在初学时都会遇到&am…...
设计模式的艺术-代理模式
结构性模式的名称、定义、学习难度和使用频率如下表所示: 1.如何理解代理模式 代理模式(Proxy Pattern):给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式是一种对象结构型模式。 代理模式类型较多…...
【Nginx】【SSE】【WebSocket】Nginx配置SSE,WebSocket的转发请求
Nginx 配置 SSE 和 WebSocket 转发 一、配置背景(火狐游览器不支持,建议谷歌游览器开发测试) 在使用 Django 框架开发 Web 应用时,为了实现实时通信,可以选择使用以下两种技术: SSE (Server-Sent Events…...
Gin 应用并注册 pprof
pprof 配置与使用步骤 1. 引言 通过下面操作,你可以顺利集成和使用 pprof 来收集和分析 Gin 应用的性能数据。你可以查看 CPU 使用情况、内存占用、以及其他运行时性能数据,并通过图形化界面进行深度分析。 1. 安装依赖 首先,确保安装了 gi…...
国产编辑器EverEdit - 输出窗口
1 输出窗口 1.1 应用场景 输出窗口可以显示用户执行某些操作的结果,主要包括: 查找类:查找全部,筛选等待操作,可以把查找结果打印到输出窗口中; 程序类:在执行外部程序时(如:命令窗…...
【C++探索之路】STL---string
走进C的世界,也意味着我们对编程世界的认知达到另一个维度,如果你学习过C语言,那你绝对会有不一般的收获,感受到C所带来的码云风暴~ ---------------------------------------begin--------------------------------------- 什么是…...
安装 docker 详解
在平常的开发工作中,我们经常需要部署项目。随着 Docker 容器的出现,大大提高了部署效率。Docker 容器包含了应用程序运行所需的所有依赖,避免了换环境运行问题。可以在短时间内创建、启动和停止容器,大大提高了应用的部署速度&am…...
GCC之编译(8)AR打包命令
GCC之(8)AR二进制打包命令 Author: Once Day Date: 2025年1月23日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章请查看专栏: Linux实践记录_Once-Day的博客-C…...
自定义命令执行器:C++中命令封装的深度探索(C/C++实现)
在现代软件开发中,执行系统命令是一项常见的需求,无论是自动化脚本、系统管理工具,还是需要调用外部程序的复杂应用程序,都离不开对系统命令的调用。然而,直接使用系统调用(如 execve)虽然简单&…...
Android BitmapShader简洁实现马赛克/高斯模糊(毛玻璃),Kotlin(三)
Android BitmapShader简洁实现马赛克/高斯模糊(毛玻璃),Kotlin(三) 发现,如果把(二) Android BitmapShader简洁实现马赛克,Kotlin(二)-CSDN博客 …...
7.渲染管线——几何阶段的概述
几何阶段是渲染管线中的一个重要部分,主要负责处理3D模型的几何信息(比如顶点位置、形状、大小等),并将它们转换为屏幕上的2D图像。用通俗易懂的方式来解释: 通俗解释:几何阶段就像把3D模型“拍扁”成2D照片…...
微信小程序实现自定义日历功能
文章目录 1. 创建日历组件实现步骤:2. 代码实现过程3. 实现效果图4. 关于作者其它项目视频教程介绍 1. 创建日历组件实现步骤: 创建日历组件:首先,你需要创建一个日历组件,包含显示日期的逻辑。样式设计:为…...
Vue3 + TS 实现批量拖拽 文件夹和文件 组件封装
一、html 代码: 代码中的表格引入了 vxe-table 插件 <Tag /> 是自己封装的说明组件 表格列表这块我使用了插槽来增加扩展性,可根据自己需求,在组件外部做调整 <template><div class"dragUpload"><el-dial…...
私域流量池构建与转化策略:以开源链动2+1模式AI智能名片S2B2C商城小程序为例
摘要:随着互联网技术的快速发展,流量已成为企业竞争的关键资源。私域流量池,作为提升用户转化率和增强用户粘性的有效手段,正逐渐受到企业的广泛关注。本文旨在深入探讨私域流量池构建的目的、优势及其在实际应用中的策略…...
NFT Insider #166:Nifty Island 推出 AI Agent Playground;Ronin 推出1000万美元资助计划
引言:NFT Insider 由 NFT 收藏组织 WHALE Members、BeepCrypto 联合出品, 浓缩每周 NFT 新闻,为大家带来关于 NFT 最全面、最新鲜、最有价值的讯息。每期周报将从 NFT 市场数据,艺术新闻类,游戏新闻类,虚拟…...
Keepalived实现HAProxy高可用搭建
Keepalived实现HAProxy高可用 文章目录 Keepalived实现HAProxy高可用拓扑表格如下拓扑结构(示例)nginx安装(所有server)HAProxy安装(主备机相同)HAProxy配置(主备机相同) 注释如下内…...
HashTable, HashMap, ConcurrentHashMap 之间的区别
一、HashTable 只是将关键方法加上了锁(synchronized关键字)。 缺点:1.如果多线程访问同一个HashTable就回直接造成锁冲突。 2.HashTable的size属性也是通过 synchronized来控制同步的,效率比较低。 3.在扩容时会涉及大量的拷贝…...
如何确保Spring单例Bean在高并发环境下的安全性?
在Spring中,单例Bean就像是一个“公共的水杯”,整个应用程序中的所有线程都会共享这一个实例。在大部分情况下,这没什么问题,但如果多个线程同时想要修改这个“水杯”里的内容,就可能会出现问题了。 想象一下ÿ…...
【2024年华为OD机试】 (A卷,200分)- 工单调度策略(JavaScriptJava PythonC/C++)
一、问题描述 问题描述 华为工单调度系统需要根据不同的策略调度外线工程师(FME)修复工单。每个工单有一个修复时间要求(SLA时间),在SLA时间内完成修复的工单可以获得对应的积分,超过SLA时间完成的工单不获得积分,但必须完成该工单。目标是设计一种调度策略,使得外线…...
Linux 内核中的高效并发处理:深入理解 hlist_add_head_rcu 与 NAPI 接口
在 Linux 内核的开发中,高效处理并发任务和数据结构的管理是提升系统性能的关键。特别是在网络子系统中,处理大量数据包的任务对性能和并发性提出了极高的要求。本文将深入探讨 Linux 内核中的 hlist_add_head_rcu 函数及其在 NAPI(网络接收处理接口)中的应用,揭示这些机制…...
Alibaba Spring Cloud 六 Seata 的核心组件:RM
在 Alibaba Spring Cloud Seata 中,Resource Manager (RM) 是三大核心组件之一。它主要负责管理分支事务中的资源(如数据库、文件等),并与 Transaction Coordinator (TC) 协作完成分支事务的注册、提交和回滚。RM 是分布式事务实际…...
【Linux】列出所有连接的 WiFi 网络的密码
【Linux】列出所有连接的 WiFi 网络的密码 终端输入 sudo grep psk /etc/NetworkManager/system-connections/*会列出所有连接过 Wifi 的信息,格式类似 /etc/NetworkManager/system-connections/AAAAA.nmconnection:pskBBBBBAAAAA 是 SSID,BBBBB 是对…...
snippets router pinia axios mock
文章目录 补充VS Code 代码片段注册自定义组件vue routerpinia删除vite创建项目时默认的文件axiosmock3.0.x版本的 viteMockServe 补充 为文章做补充:https://blog.csdn.net/yavlgloss/article/details/140063387 VS Code 代码片段 为当前项目创建 Snippets {&quo…...
C#常考随笔2:函数中多次使用string的+=处理,为什么会产生大量内存垃圾(垃圾碎片),有什么好的方法可以解决?
在 C# 中,由于string类型是不可变的,当在函数中多次使用操作符来拼接字符串时,每次操作都会创建一个新的string对象,旧的对象则成为垃圾对象,这会导致大量的内存分配和垃圾回收,产生内存垃圾和碎片。 在需…...
GitLab配置免密登录和常用命令
SSH 免密登录 Windows免密登录 删除现有Key 访问目录:C:\Users\Administrator\ .ssh,删除公钥:id_rsa.pub ,私钥:id_rsa 2.生成.ssh 秘钥 运行命令生成.ssh 秘钥目录( ssh-keygen -t rsa -C xxxxxx126.…...
编码器和扩散模型
目录 摘要abstract1.自动编码器2.变分编码器(VAE)3.论文阅读3.1 介绍3.2 方法3.3 结论 4.总结参考文献 摘要 本周学习了自动编码器(AE)和变分自动编码器(VAE)的基本原理与实现,分析其在数据降维…...
three.js用粒子使用canvas生成的中文字符位图材质
three.js用粒子使用canvas生成中文字符材质 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Three.…...
数据结构与算法之堆: LeetCode 208. 实现 Trie (前缀树) (Ts版)
实现 Trie (前缀树) https://leetcode.cn/problems/implement-trie-prefix-tree/description/ 描述 Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景&am…...
在 Linux 中使用 nslookup命令
什么是 nslookup? nslookup 命令是名称服务器查找的缩写,是一种网络管理工具,用于获取域名的 IP 地址或其他 DNS 记录信息,通常用于解决 DNS 或名称解析问题 nslookup一般语法,<domain-name>是您要查询的域名,…...
【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.1 从零搭建NumPy环境:安装指南与初体验
1. 从零搭建NumPy环境:安装指南与初体验 NumPy核心能力图解(架构图) NumPy 是 Python 中用于科学计算的核心库,它提供了高效的多维数组对象以及用于处理这些数组的各种操作。NumPy 的核心能力可以概括为以下几个方面:…...
PHP校园助手系统小程序
🔑 校园助手系统 —— 智慧校园生活 📱一款基于ThinkPHPUniapp框架深度定制的校园助手系统,犹如一把智慧之钥,专为校园团队精心打造,解锁智慧校园生活的无限精彩。它独家适配微信小程序,无需繁琐的下载与安…...
2_高并发内存池_各层级的框架设计及ThreadCache(线程缓存)申请内存设计
一、高并发内存池框架设计 高并发池框架设计,特别是针对内存池的设计,需要充分考虑多线程环境下: 性能问题锁竞争问题内存碎片问题 高并发内存池的整体框架设计旨在提高内存的申请和释放效率,减少锁竞争和内存碎片。 高并发内存…...
在线可编辑Excel
1. Handsontable 特点: 提供了类似 Excel 的表格编辑体验,包括单元格样式、公式计算、数据验证等功能。 支持多种插件,如筛选、排序、合并单元格等。 轻量级且易于集成到现有项目中。 具备强大的自定义能力,可以调整外观和行为…...
物业管理系统源码优化物业运营模式实现服务智能化与品质飞跃
内容概要 在当今快速发展且竞争激烈的市场环境中,物业管理面临着众多挑战,而“物业管理系统源码”的优化,无疑为解决这些问题提供了有效的途径。这些优化不仅提升了物业管理的效率,还实现了服务智能化,推动了物业运营…...
双足机器人开源项目
双足机器人(也称为人形机器人或仿人机器人)是一个复杂的领域,涉及机械设计、电子工程、控制理论、计算机视觉等多个学科。对于想要探索或开发双足机器人的开发者来说,有许多开源项目可以提供帮助。这些项目通常包括硬件设计文件、…...
第五部分:Linux中的gcc/g++以及gdb和makefile
目录 1、编译器gcc和g 1.1、预处理(进行宏替换) 1.2、编译(生成汇编) 1.3、汇编(生成机器可识别代码) 1.4、连接(生成可执行文件或库文件) 1.5、gcc编译器的使用 2、Linux调试器-gdb使用 2.1、debug…...
decison tree 决策树
熵 信息增益 信息增益描述的是在分叉过程中获得的熵减,信息增益即熵减。 熵减可以用来决定什么时候停止分叉,当熵减很小的时候你只是在不必要的增加树的深度,并且冒着过拟合的风险 决策树训练(构建)过程 离散值特征处理:One-Hot…...
GPU算力平台|在GPU算力平台部署AI虚拟换衣模型(CatVTON)的应用实战教程
文章目录 一、GPU算力服务平台概述智能资源分配优化的Kubernetes架构按需计费安全保障平台特色功能 二、平台账号注册流程AI虚拟换衣模型(CatVTON)的应用实战教程AI虚拟换衣模型(CatVTON)的介绍AI虚拟换衣模型(CatVTON)的部署步骤 一、GPU算力服务平台概述 蓝耘GPU算力平台专为…...
使用云服务器自建Zotero同步的WebDAV服务教程
Zotero 是一款广受欢迎的文献管理软件,其同步功能可以通过 WebDAV 实现文献附件的同步。相比 Zotero 官方提供的300MB免费存储服务,自建 WebDAV 服务具有存储空间大、成本低以及完全控制数据的优势。本文将详细介绍如何使用云服务器自建 WebDAV 服务&…...
单片机基础模块学习——按键
一、按键原理图 当把跳线帽J5放在右侧,属于独立按键模式(BTN模式),放在左侧为矩阵键盘模式(KBD模式) 整体结构是一端接地,一端接控制引脚 之前提到的都是使用了GPIO-准双向口的输出功能&#x…...