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

B3642 二叉树的遍历<---搜索与树

书接上级题目来源B3642 二叉树的遍历 - 洛谷题目描述有一个 n(n≤106) 个结点的二叉树。给出每个结点的两个子结点编号均不超过 n建立一棵二叉树根节点的编号为 1如果是叶子结点则输入0 0。建好树这棵二叉树之后依次求出它的前序、中序、后序列遍历。输入格式第一行一个整数 n表示结点数。之后 n 行第 i 行两个整数 l、r分别表示结点 i 的左右子结点编号。若 l0 则表示无左子结点r0 同理。输出格式输出三行每行 n 个数字用空格隔开。第一行是这个二叉树的前序遍历。第二行是这个二叉树的中序遍历。第三行是这个二叉树的后序遍历。输入输出样例输入 #17 2 7 4 0 0 0 0 3 0 0 0 5 6 0输出 #11 2 4 3 7 6 5 4 3 2 1 6 5 7 3 4 2 5 6 7 1题目分析这道题根据树的遍历可以分成三部分为前序遍历中序遍历后序遍历。遍历详情见有关树的存储与二叉树的遍历-CSDN博客前序遍历为根左右。先输出自己再输出左然后返回到右而中序遍历则为判断自己的左节点是否遍历过了或是否为空等自己左节点为空或被遍历后输出自己然后再看右节点。最后后序遍历用while循环根节点的左与右节点都被遍历后或都为0时则结束否则执行while循环如果自己的左与右节点都输出过或为空则输出自己标记自己。代码#includebits/stdc.h using namespace std; const int maxn1e65; vectorint t[maxn]; bool p[maxn];//中序遍历的标记数组 bool st[maxn];//后序遍历的标记数组 int x1[maxn]; void dfs(int m) { if(m!0) coutm ; for(int i0; it[m].size(); i) { dfs(t[m][i]); } } void z(int m) { if(p[t[m][0]]false) { coutm ; p[m]false; if(p[t[m][1]]!false) { z(t[m][1]); } return; } for(int i0; it[m].size(); i) { if(i0) { if(p[t[m][i]]!false) { z(t[m][i]); } } if(p[m]!false){ coutm ; p[m]false; } if(i1){ if(p[t[m][i]]!false) { z(t[m][i]); } } } } int main() { int n; cinn; for(int i1; in; i) { st[i]true; p[i]true; } for(int i1; in; i) { int l,r; cinlr; t[i].push_back(l); t[i].push_back(r); } dfs(1);//前序遍历 coutendl; z(1);//中序遍历 coutendl; int j0; int x1; x1[j]x; while(st[t[1][0]]!false||st[t[1][1]]!false) { if(st[t[x][0]]falsest[t[x][1]]false) { coutx ; st[x]false; while((st[t[x][0]]falsest[t[x][1]]false)x!1) { xx1[--j];//返回 } } else { for(int i0; it[x].size(); i) { if(st[t[x][i]]!false) { xt[x][i]; x1[j]x; break; } } } }//后序遍历 cout1;//输出根节点 return 0; }
http://www.rkmt.cn/news/1374109.html

相关文章:

  • Deep Clustering of Tabular Data by Weighted Gaussian Distribution Learning——基于加权高斯分布学习的表格数据深度聚类
  • STM32内核精讲 | 第七章:异常与中断系统(NVIC)—— 进阶篇
  • 机器学习数据集详解,公开免费数据集获取渠道汇总
  • 数据结构:线性表和顺序表
  • 非结构化资料智慧解析应用方案(2026版)
  • 医疗AI入门实战:用Python从MIMIC-CXR数据集中提取X光图像和诊断报告(附完整代码)
  • 朝晖玻璃钢:玻璃钢保温水箱/玻璃钢消防水箱/玻璃钢罐化粪池/碳钢水箱/立式不锈钢水箱/组合式玻璃钢水箱/雨水一体化提升泵站/选择指南 - 优质品牌商家
  • 15_结构体联合与枚举_组织复杂数据
  • 一小时搭建爬虫数据提取智能体 · 数据矿工
  • 多层感知机
  • 2026年紫外线杀菌除藻灯优质厂家深度解析:聚焦技术、产能与服务三角 - 2026年企业推荐榜
  • ubuntu2026.04部署k8s1.36版本的傻瓜式教程(注:运行时为docker,网络插件为calico)
  • DFT笔记59
  • 高通骁龙处理器深度解码:从移动通信霸主到全场景智能计算引擎
  • 告别SSH断连焦虑:手把手教你用Screen在Linux后台挂起任务(含源码编译避坑)
  • Win7专业版电脑重启后时间服务总停止?三步设置让它稳定运行(附命令详解)
  • 鸿蒙数理体系创作说明 (鸿蒙数学一阶完结后更新说明)
  • 在CentOS7服务器上装Win10?手把手教你用Ventoy搞定双系统(附网卡驱动安装避坑指南)
  • 2026年知名的大豆定量包装机/饲料定量包装机厂家哪家好 - 行业平台推荐
  • 2026靠谱仪器推荐:Trim200离子束刻蚀机、Essent Optics分光光度计、LINZA分光光度计、LensCheck MTF传函仪选择指南 - 优质品牌商家
  • Vibing Steampunk,一座把 Claude Code、MCP 和 SAP ADT 接到一起的 ABAP 工程桥
  • 2026北京搬家公司优质推荐指南:北京公司搬家公司/北京收纳整理公司/北京日式搬家公司/北京本地搬家/北京企业搬家/选择指南 - 优质品牌商家
  • Codex入门17-上下文管理(高手秘技:如何让AI精准理解你的百万行大型项目)
  • Zynq的QSPI Flash替换为GD25Q32故障排查
  • 问题分析-并网逆变器炸机问题
  • 别再死记硬背了!用Python代码一次性搞懂曼哈顿、欧式、切比雪夫距离的底层联系
  • 2026免费在线去水印软件推荐,手把手教你5种方法,第三种0.3秒搞定!
  • 2026保姆级免费去图片水印App教程,一键无痕去除,这4款微信小程序最省心
  • 2026最好用的图片处理工具推荐:去水印 / 抠图 / 高清化实测对比
  • Claude Code 接入 DeepSeek