当前位置: 首页 > news >正文

洛谷 P1305:新二叉树 ← DFS

​【题目来源】
https://www.luogu.com.cn/problem/P1305

【题目描述】
输入一串二叉树,输出其前序遍历。

【输入格式】
第一行为二叉树的节点数 n。(1≤n≤26)
后面 n 行,第一个字母为节点,后两个字母分别为其左右儿子。特别地,数据保证第一行读入的节点必为根节点。
空节点用 * 表示。

【输出格式】
二叉树的前序遍历。

【输入样例】
6
abc
bdi
cj*
d**
i**
j**

【输出样例】
abdicj

【数据范围】
1≤n≤26

【算法分析】
● 在 C/C++ 语言中,char 类型本质上是整型的子集,存储的是字符对应的 ASCII 码值。小写字母 a ~ z 的十进制 ASCII 码范围为 97~122。若直接使用小写字符作为数组下标,编译器会自动把字符隐式转换为对应的 ASCII 整数值,再进行数组下标访问。如果数组仅开到 30、50 这类小范围,用 'a'(97)、'b'(98)等字符当下标,会直接造成数组下标越界,触发未定义行为:可能正常运行、可能答案错乱、也可能直接运行报错 RE。因此有两种规范写法:
(1)省事懒人写法:直接将数组大小开到 128(覆盖所有基础 ASCII 字符),无需做字符转换,直接用字母当下标也不会越界,适合二叉树、字符串映射、图论邻接表等场景;
(2)节省空间 + 规范标准写法:若希望把数组下标控制在 30 以内、紧凑利用空间,可将每个小写字母减去字符 'a',把 a~z 映射为连续的 0~25。此时,下标严格可控、完全不会越界,是竞赛和工程中的标准写法。

【算法代码】

#include <bits/stdc++.h>
using namespace std;const int N=30;
char root,ls[N],rs[N];void dfs(char rt) {if(rt=='*') return;cout<<rt;dfs(ls[rt-'a']);dfs(rs[rt-'a']);
}int main() {int n;cin>>n;for(int i=1; i<=n; i++) {char rt,le,ri;cin>>rt>>le>>ri;if(i==1) root=rt;ls[rt-'a']=le;rs[rt-'a']=ri;}dfs(root);return 0;
}/*
in:
6
abc
bdi
cj*
d**
i**
j**out:
abdicj
*/






【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/160515496

 


 

http://www.jsqmd.com/news/798229/

相关文章:

  • 抖音视频怎么去水印?手机电脑都能用的工具对比,2026 免费方案实测 - 科技热点发布
  • 从业者必看:医药资质认证服务核心知识梳理
  • AI东风起,深圳存储与液冷企业市值狂飙,催生一批百亿富豪
  • 工业AI和大模型是一回事吗?拆解制造业场景里的关键技术逻辑
  • 浙江省人民政府于2025年1月26日公布新版《浙江省重点保护陆生野生动物名录》
  • 构建高效团队协作平台:从作战室思维到工程化实践
  • 2026届最火的十大降AI率方案解析与推荐
  • C语言打印三角形别再只会用*了!用字母、数字、符号玩出新花样(附完整代码)
  • SiC晶圆划裂技术:原理、优化与量产挑战
  • Zynq-7000 PL端I2C IP核驱动光模块,设备树配置避坑指南(附完整DTS代码)
  • 2026去水印小程序哪个好用?4款微信小程序排行榜实测对比,新手秒上手 - 科技热点发布
  • Redis哨兵模式详解
  • 完整资源下载|MATLAB|Python代码|Simulink等资源下载|MATLAB|抽水蓄能电站系统的最优竞价策略研究
  • 在DMXAPI上遇见扣子:一次偶然,才开启的AI之旅
  • 从按键开机到I2C隔离:手把手拆解一个智能硬件项目里的MOS管实战配置
  • 从基础到进阶:掌握Matlab mean函数的全维度数据均值计算
  • 3分钟完成Android Studio完全汉化:官方修改版中文语言包终极指南
  • 【最新 v2.7.1 版本】 OpenClaw 2.7.1 极简部署方法及安装包
  • 戴尔OptiPlex安装Ubuntu:从ACPI报错到网卡驱动的完整排障指南
  • 42岁程序员8个月求职记:AI时代,经验贬值?3条转型路径助你逆袭!
  • 2026免费去水印视频软件怎么选?排行榜与最新推荐指南 - 科技热点发布
  • 程力专用汽车股份有限公司官网:全品类车型与服务一站式查询 - 速递信息
  • Python全栈实战:前后端分离开发核心要点
  • Shinkai Node:无代码AI智能体平台架构解析与实战部署
  • 避坑指南:STM32H7使用CMSIS-DSP库做定点数转换,这些细节千万别忽略
  • 2026AI大模型开发「保姆级教程」:从0到1实战,开发者速看直接抄作业!
  • Android 14 + Linux 6.1 平台 RTL8822CE Wi‑Fi 适配实战:从 PCI 已枚举到成功扫描热点
  • 软工5.11
  • AI工具搭建自动化视频生成xFormers
  • 从零到一:基于Simulink的Buck电路建模与PID控制器自动调参实战