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

洛谷B3642 二叉树的遍历(前序、中序、后序)

题目描述

有一个 𝑛(𝑛≤10^6) 个结点的二叉树。给出每个结点的两个子结点编号(均不超过 𝑛),建立一棵二叉树(根节点的编号为 1),如果是叶子结点,则输入 0

建好树这棵二叉树之后,依次求出它的前序、中序、后序列遍历。

输入格式

第一行一个整数 𝑛,表示结点数。

之后 𝑛 行,第 𝑖 行两个整数 𝑙、𝑟,分别表示结点 𝑖 的左右子结点编号。若 𝑙=0 则表示无左子结点,𝑟=0 同理。

输出格式

输出三行,每行 𝑛 个数字,用空格隔开。

第一行是这个二叉树的前序遍历。

第二行是这个二叉树的中序遍历。

第三行是这个二叉树的后序遍历。

树的最基本的三个遍历:前序:根左右、中序:左根右、后序:左右根

代码如下:

#include <bits/stdc++.h>
using namespace std;const int MAXN = 1e6 + 5;
struct node{int left;int right;
}a[MAXN];
int n;void front(int x){cout << x << " ";if(a[x].left) front(a[x].left);if(a[x].right) front(a[x].right); return ;
}
void mid(int x){if(a[x].left) mid(a[x].left);cout << x << " ";if(a[x].right) mid(a[x].right);return ;
}
void back(int x){if(a[x].left) back(a[x].left);if(a[x].right) back(a[x].right);cout << x << " ";return ;
}
int main()
{cin >> n;for(int i=1;i<=n;i++){cin >> a[i].left >> a[i].right;}front(1);cout << "" << endl;mid(1);cout << "" << endl;back(1);return 0;
}

原理就是dfs广搜,如果dfs有疑问的地方可以去看看洛谷P1783 数独(c++lambda函数广搜详解)-CSDN博客

洛谷P1036 选数(dfs的应用)-CSDN博客

LeetCode 18.四数之和(暴力dfs)-CSDN博客

加油

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JVM的几种常见垃圾回收算法
  • Flutter笔记:关于WebView插件的用法(上)
  • Linux基础IO【II】真的很详细
  • 什么是CSS的:target选择器
  • css实现优惠券样式
  • 破布叶(Microcos paniculata)单倍型染色体级别基因组-文献精读22
  • 软考初级网络管理员_08_网络单选题
  • Docker:镜像命令和容器命令
  • FPGA+金融|硬件行情加速系统 打造极速交易场景
  • Stability AI发布新版文生图模型:依然开源
  • C++面向对象程序设计 - 输入输出流进一步研究
  • 2024.6.13 刷题总结
  • 编程器可以做什么游戏:探索游戏开发的无限可能
  • 第十六篇——置信度:马斯克犯了什么数学错误?
  • 新研究使VQE算法成功扩展到12个量子比特,误差抑制在两个数量级
  • 0基础学习移动端适配
  • CSS 提示工具(Tooltip)
  • EOS是什么
  • Invalidate和postInvalidate的区别
  • JavaScript函数式编程(一)
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • mockjs让前端开发独立于后端
  • Nacos系列:Nacos的Java SDK使用
  • React中的“虫洞”——Context
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • vue数据传递--我有特殊的实现技巧
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 大型网站性能监测、分析与优化常见问题QA
  • 给github项目添加CI badge
  • 码农张的Bug人生 - 见面之礼
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • ionic异常记录
  • 大数据全解:定义、价值及挑战
  • 通过调用文摘列表API获取文摘
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • (¥1011)-(一千零一拾一元整)输出
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (20)docke容器
  • (23)Linux的软硬连接
  • (6)设计一个TimeMap
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (web自动化测试+python)1
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (四)Linux Shell编程——输入输出重定向
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • *** 2003
  • ../depcomp: line 571: exec: g++: not found
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查