【算法】二叉树的存储与遍历模板
二叉树的存储与遍历
const int N = 1e6 + 10;// 二叉树的存储,l数组为左节点,r数组为右结点
int l[N], r[N];
// 存储节点的数据
char w[N];
// 节点的下标指针
int idx = 0;// 先序创建
int pre_create(int n) {cin >> w[n];if (w[n] == '#') return -1;l[n] = pre_create(++idx);r[n] = pre_create(++idx);return n;
}// 中序创建
int in_create(int n) {if (w[n] == '#') return -1;l[n] = in_create(++idx);cin >> w[n];r[n] = in_create(++idx);return n;
}// 后序创建
int back_create(int n) {if (w[n] == '#') return -1;l[n] = back_create(++idx);r[n] = back_create(++idx);cin >> w[n];return n;
}// 先序遍历
void pre_print(int n){if (w[n] != '#') cout << w[n] << ' ';if (l[n] > 0) pre_print(l[n]);if (r[n] > 0) pre_print(r[n]);
}// 中序遍历
void in_print(int n){if (l[n] > 0) in_print(l[n]);if (w[n] != '#') cout << w[n] << ' ';if (r[n] > 0) in_print(r[n]);
}// 后序遍历
void back_print(int n){if (l[n] > 0) back_print(l[n]);if (r[n] > 0) back_print(r[n]);if (w[n] != '#') cout << w[n] << ' ';
}// 层序遍历
void bfs(int root){queue<int> que;que.push(root);while (!que.empty()) {int t = que.front();cout << w[t] << ' ';que.pop();if (l[t] > 0 && w[l[t]] != '#')que.push(l[t]);if (r[t] > 0 && w[r[t]] != '#')que.push(r[t]);}
}
应用
int main(){// 先序创建pre_create(++idx);// 中序创建// in_create(++idx);// 后序创建// back_create(++idx);// 先序遍历pre_print(1);// 中序遍历in_print(1);// 后序遍历back_print(1);// 层序遍历bfs(1);// 测试数据abc##de#g##f###// 输出如下:// a b c d e g f // c b e g d f a // c g e f d b a // a b c d e f g return 0;
}
存起来,一起用
相关文章:
【算法】二叉树的存储与遍历模板
二叉树的存储与遍历 const int N 1e6 10;// 二叉树的存储,l数组为左节点,r数组为右结点 int l[N], r[N]; // 存储节点的数据 char w[N]; // 节点的下标指针 int idx 0;// 先序创建 int pre_create(int n) {cin >> w[n];if (w[n] #) return -1;l[n] pre_create(idx)…...
【Go学习之 go mod】gomod小白入门,在github上发布自己的项目(项目初始化、项目发布、项目版本升级等)
参考 Go语言基础之包 | 李文周的博客Go mod的使用、发布、升级 | weiGo Module如何发布v2及以上版本1.2.7. go mod命令 — 新溪-gordon V1.7.9 文档golang go 包管理工具 go mod的详细介绍-腾讯云开发者社区-腾讯云Go Mod 常见错误的原因 | walker的博客 项目案例 oceanweav…...
79基于matlab的大米粒中杂质识别
基于matlab的大米粒中杂质识别,数据可更换自己的,程序已调通,可直接运行。 79matlab图像处理杂质识别 (xiaohongshu.com)...
Vue 项目实战——如何在页面中展示 PDF 文件以及 PDFObject 插件实战
文章目录 📋前言🎯使用 HTML 标签🧩 embed 标签🧩 object标签🧩 iframe标签🧩完整代码 🎯使用 PDFObject 插件🧩为什么使用 PDFObject 插件(AI翻译)…...
系列六、ThreadLocal内存泄露案例
一、ThreadLocal内存泄露案例 /*** Author : 一叶浮萍归大海* Date: 2023/11/22 10:56* Description: 写一段代码导致内存泄露* VM Options:-Xms20m -Xmx20m -Xmn10m -XX:PrintGCDetails* 说明:内存泄露最终会导致内存溢出*/ public class ThreadLocalO…...
Java学习笔记44——Stream流
Stream流 体验Stream流Stream流的生成方式ColLection体系的集合可以使用默认方法stream ()生成流Map体系的集合间接的生成流数组可以通过stream接口的静态方法of (T... values)生成流 Stream流的中间操作方法Stream<T> filter(Predicate predicate)Stream<T>limit(…...
excel表格忘记密码,如何找回?
找回和去除Excel表格密码的方法非常简单。具体步骤如下:第一步百度搜索【 密码帝官网 】,第二步点击“立即开始”在用户中心上传文件即可。这个方法既安全又简单,不需要下载任何软件,而且可以在手机和电脑上都使用。密码帝官网支持…...
IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Mybatis初识和框架搭建
第一章 初识Mybatis 1.1 框架概述 生活中“框架” 买房子笔记本电脑 程序中框架【代码半成品】 Mybatis框架:持久化层框架【dao层】SpringMVC框架:控制层框架【Servlet层】Spring框架:全能… 1.2 Mybatis简介 Mybatis是一个半自动化持久化…...
差分放大器工作原理(差分放大器和功率放大器区别)
差分放大器是一种特殊的放大器,它可以将两个输入信号的差异放大输出。其工作原理基于差分放大器的电路结构和差分输入特性。 一、差分放大器电路结构 差分放大器一般由四个基本电路组成:正反馈网络、反相输入端、共模抑制电路和差分输入端。其中…...
SystemV
a...
LiteOS同步实验(实现生产者-消费者问题)
效果如下图: 给大家解释一下上述效果:在左侧(顶格)的是生产者(Producer);在右侧(空格)的是消费者(Consumer)。生产者有1个,代号为“0”…...
redis的性能管理和雪崩
redis的性能管理 redis的数据是缓存在内存当中的 系统巡检: 硬件巡检、数据库、nginx、redis、docker、k8s 运维人员必须要关注的redis指标 在日常巡检中需要经常查看这些指标使用情况 info memory #查看redis使用内存的指标 used_memory:11285512 #数据占用的…...
python:关于函数内 * 和 / 是什么意思?
总结:如果你希望调用者使用函数时一定不能使用关键字传参,要求它使用位置进行传参,那么就可以把这些参数放在 / 的前面即可;如果你希望调用者使用函数时一定要使用某些参数,且必须是关键字传参时,那么就可以…...
PPT密码解密,简单教程,保护幻灯片内容
在创建、编辑和共享幻灯片时,有时会解除密码来保护幻灯片的安全。如果因为忘记密码而无法编辑或打开幻灯片,下面是一种安全、简单、实惠的办法来解决这个问题。 具体步骤如下:第一步百度搜索【密码帝官网】,第二步点击“立即开始”…...
Apache Airflow (十一) :HiveOperator及调度HQL
🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹…...
SpringBoot-Docker容器化部署发布
在生产环境都是怎么部署 Spring Boot? 打成 jar 直接一键运行打成 war 扔到 Tomcat 容器中运行容器化部署 一、准备Docker 在 CentOS7 上安装好 Docker 修改 Docker 配置,开启允许远程访问 Docker 的功能,开启方式很简单,修改 /usr/lib/s…...
重生奇迹mu格斗怎么加点
1.力量加点 力量是格斗家的主要属性之一,它可以增加你的攻击力和物理伤害。因此,对于格斗家来说,力量加点是非常重要的。建议在前期将大部分的加点放在力量上,这样可以让你更快地杀死怪物,提高升级速度。 2.敏捷加点…...
「浙江科聪新品发布」新品发布潜伏顶升式移动机器人专用控制器
聚焦专用车型 最小专用控制器 控制器只占整机5%,纵向出线方式,占比更小 更易插拔 整体解决方案 更具价格优势 提供整体解决方案,配套各类型产品设备及车体厂家 打造持久稳定使用 坚持工业级品质 采用车规级接口,不用其它类不可…...
大数据学习(22)-spark
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦ᾑ…...
String类常用方法总结
目录 一.简单认识String 二.String对象的比较 1.equals 内部实现原理: 2.compareTo 3.compareToIgnoreCase 三.字符串查找 示例: 四.字符串与其他类型转化 1.数值和字符串相互转换 2.大小写相互转化 3.字符串转数组 4.格式化转化 五.字符串…...
AI助手数据损坏救援指南:ReClaw工具的原理与实战
1. 项目概述:当AI助手“脑死亡”时,你需要一个独立救援队如果你正在运行一个像OpenClaw这样的本地AI助手工作空间,那么你很可能已经体验过那种令人抓狂的时刻:助手突然“失忆”,无法启动,或者开始胡言乱语。…...
应对2026海外新规:留学生英文论文降AI避坑指南(附4款实测工具)
不知道各位小伙伴发现没有,处理英文文章这件事要比处理中文难很多。之前我自己的英文摘要写好后满心欢喜去跑检测,结果你猜怎么着?手打的摘要部分AI率居然高达85%......我折腾了两三天时间,查了各种资料,这才算真正搞懂…...
从实验室到机房:用神州数码设备搭建企业级网络的全流程实战(VLAN/路由/安全)
从实验室到机房:用神州数码设备搭建企业级网络的全流程实战 当一家50人规模的中型企业从共享办公空间搬入独立写字楼时,网络架构师小李面临的第一个挑战是:如何用有限的预算搭建一个具备部门隔离、安全管控和远程管理能力的企业网络。与实验室…...
高斯泼溅技术在3D场景理解与深度估计中的应用
1. 技术背景与核心价值 在计算机视觉领域,3D场景理解一直是个关键挑战。传统深度估计方法往往受限于稀疏输入或低分辨率数据,导致重建结果细节丢失严重。最近我在一个AR导航项目中就遇到了这个问题——手机摄像头采集的深度图分辨率不足,直接…...
探索Acode:如何在Android设备上打造完整的移动开发环境
探索Acode:如何在Android设备上打造完整的移动开发环境 【免费下载链接】Acode Acode - powerful text/code editor for android 项目地址: https://gitcode.com/gh_mirrors/ac/Acode Acode移动代码编辑器、Android开发工具、移动编程环境 - 你是否曾经想过&…...
别再只调库了!深入理解STM32 RTC时钟源选择(LSE/LSI/HSE)与低功耗设计要点
深入解析STM32 RTC时钟源选择与低功耗设计实战 在嵌入式系统开发中,实时时钟(RTC)模块的重要性常常被低估。很多开发者满足于在CubeMX中勾选几个配置选项就认为任务完成,却忽略了时钟源选择对系统稳定性、精度和功耗的关键影响。本文将带您深入STM32的RT…...
如何3分钟搭建免费H5页面编辑器:零代码制作专业移动端页面
如何3分钟搭建免费H5页面编辑器:零代码制作专业移动端页面 【免费下载链接】h5maker h5编辑器类似maka、易企秀 账号/密码:admin 项目地址: https://gitcode.com/gh_mirrors/h5/h5maker 还在为制作精美的H5页面而发愁吗?想要像专业设计…...
【完整源码+数据集+部署教程】医学影像感染区域分割系统源码&数据集分享 [yolov8-seg-RevCol&yolov8-seg-C2f-EMSCP等50+全套改进创新点发刊_一键训练教程_Web
背景意义 随着医学影像技术的快速发展,医学影像在疾病诊断、治疗和预后评估中扮演着越来越重要的角色。尤其是在感染性疾病的诊断中,医学影像不仅能够提供直观的病灶信息,还能辅助医生进行精准的临床决策。然而,传统的医学影像分…...
本地大语言模型部署指南:从硬件选型到实战调优
1. 本地大语言模型(LLM)入门:为什么选择在消费级硬件上运行?如果你对ChatGPT、Claude这类云端AI助手已经非常熟悉,但偶尔会受限于它们的网络要求、使用成本,或者对数据隐私有所顾虑,那么“本地大…...
告别‘变砖’恐慌:详解STM32 IAP升级中BootLoader+Setting+App+Download分区方案的实战配置
STM32 IAP升级防变砖全攻略:BootLoaderSettingAppDownload分区架构深度解析 当你的STM32设备在凌晨3点的工厂里突然变砖,而客户的生产线因此停摆——这种噩梦般的场景,正是我们今天要彻底解决的痛点。不同于市面上泛泛而谈的BootLoader教程&a…...
