3143 二叉树的序遍历
在这解道问题前先学习一下什么是二叉树的序遍历。
二叉树的序遍历分为前序遍历,中序遍历和后序遍历。
前序遍历:
前序遍历(DLR)是二叉树遍历的一种,也叫做先根遍历、先序遍历、前序周游,可记做根左右,即其遍历先从根节点开始,再依次遍历左右子节点。
中序遍历:
中序遍历(LDR)是二叉树遍历的一种,也叫做中根遍历、中序周游,可记做左根右,即其遍历从左子节点开始,再依次遍历根节点和右子节点。
后序遍历:
后序遍历(LRD)是二叉树遍历的一种,也叫做后根遍历、后序周游,可记做左右根,即其遍历从左子节点开始,再依次遍历右子节点和根节点。
e.g.
上图的前序遍历结果为:
ABDECF
中序遍历结果为:
DBEAFC
后序遍历结果为:
DEBFCA
题目描述 Description求一棵二叉树的前序遍历,中序遍历和后序遍历
输入描述 Input Description第一行一个整数n,表示这棵树的节点个数。
接下来n行每行2个整数L和R。第i行的两个整数Li和Ri代表编号为i的节点的左儿子编号和右儿子编号。
输出描述 Output Description输出一共三行,分别为前序遍历,中序遍历和后序遍历。编号之间用空格隔开。
样例输入 Sample Input5
2 3
4 5
0 0
0 0
0 0
样例输出 Sample Output1 2 4 5 3
4 2 5 1 3
4 5 2 3 1
数据范围及提示 Data Size & Hintn <= 16
根据不同的遍历方法设计三种递归
AC代码:
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 5 int x[100000],y[100000]; 6 7 void q(int n){ 8 if(n){ 9 cout<<n<<" "; 10 q(x[n]); 11 q(y[n]); 12 } 13 } 14 15 void z(int n){ 16 if(n){ 17 z(x[n]); 18 cout<<n<<" "; 19 z(y[n]); 20 } 21 } 22 23 void h(int n){ 24 if(n){ 25 h(x[n]); 26 h(y[n]); 27 cout<<n<<" "; 28 } 29 } 30 31 int main(){ 32 int n; 33 cin>>n; 34 memset(x,0,sizeof(x)); 35 memset(y,0,sizeof(y)); 36 for(int i=1;i<=n;i++){ 37 cin>>x[i]>>y[i]; 38 } 39 q(1); 40 cout<<endl; 41 z(1); 42 cout<<endl; 43 h(1); 44 cout<<endl; 45 return 0; 46 }
转载于:https://www.cnblogs.com/Kiven5197/p/5665581.html
3143 二叉树的序遍历相关推荐
- codevs3143 二叉树的序遍历
难度等级:白银 3143 二叉树的序遍历 题目描述 Description 求一棵二叉树的前序遍历,中序遍历和后序遍历 输入描述 Input Description 第一行一个整数n,表示这棵树的节点 ...
- 后序遍历的非递归算法python_二叉树后序遍历(递归与非递归)算法C语言实现...
二叉树后序遍历的实现思想是:从根节点出发,依次遍历各节点的左右子树,直到当前节点左右子树遍历完成后,才访问该节点元素. 图 1 二叉树 如图 1 中,对此二叉树进行后序遍历的操作过程为: 从根节点 1 ...
- leetcode算法题--二叉树中序遍历迭代法
原题链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/ 二叉树中序遍历迭代法,栈实现 vector<int> ...
- js实现创建二叉树+先序遍历
二叉树概念 1.除了最下面一层,每个节点都是父节点,每个节点都有且最多有两个子节点: 2.除了嘴上面一层,每个节点是子节点,每个节点都会有一个父节点: 3.最上面一层的节点为根节点: 图例说明: 先序 ...
- sdut 2137 数据结构实验之求二叉树后序遍历和层次遍历
数据结构实验之求二叉树后序遍历和层次遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descr ...
- 数据结构实验之求二叉树后序遍历和层次遍历
数据结构实验之求二叉树后序遍历和层次遍历 Description 已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历和层序遍历. Input 输入数据有多组,第一行是一个整数t (t<100 ...
- 二叉树先序遍历递归算法(图解)
前言 二叉树的遍历 是树结构插入.删除.修改.查找和排序运算的前提, 是二叉树一切运算的基础和核心. 二叉树的遍历分为先序.中序.后序遍历, 通过递归实现时, 三者的区别不大, 连代码都不需要修改, ...
- C++ morris inorder二叉树中序遍历(附完整源码)
C++ morris inorder二叉树中序遍历 morris inorder二叉树中序遍历算法的完整源码(定义,实现,main函数测试) morris inorder二叉树中序遍历算法的完整源码( ...
- 初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为
初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:() 8 3 2 5 1 6 4 7 3 2 8 5 1 4 6 7 3 8 2 5 ...
最新文章
- EOS入门指南PART6——别忙着开发,先来看看智能合约数据是怎么存的
- Python入门100题 | 第070题
- SpringMVC 全局异常处理的简单应用
- Java键盘录入 Scanner
- 数据科学 IPython 笔记本 8.5 简单的散点图
- Python花式编程:6种方法计算1!+2!+...+n!
- 管理感悟:公司内斗,肯定是闲着的斗干活的
- react代码编辑器 react-ace
- Android开发初体验——创建一个简单的APP
- [BUGKU] [PWN] PWN5
- SEO优化方案及SEO操作流程-邹川
- linux中system函数
- PDFBox打印PDF A4格式文档和定制规格条码实例
- oracle第五章多表连接习题答案(理解+剖析)
- Java统计数组中各个数字出现的个数和字符串中各个字符出现的个数
- 梳子刻字刻什么好_校园石阶上被刻了1700多个汉字,这次网友却说好
- 商用设计素材库,设计师必备。
- 用列主元高斯(Gauss)消元法求n阶线性方程组的解(python)
- 数据预处理Part9——数据降维
- Python-就业方向
热门文章
- python编程入门与实践_Python编程入门到实践(二)
- java arraylist实现_java实现ArrayList基本功能
- 高德地图 街道范围_高德地图发布交通“评诊治”系统:针对各类交通拥堵场景“因地制宜”...
- python css selector_Python爬虫之Selector的用法
- html js css如何关联_html+css +js 选项卡
- 哪个网站是计算机知识的,电脑知识网站
- XStream生成的XML中带class属性,去掉class属性
- 【maven】修改编译得到的文件名
- linux java程序启动脚本
- linux 检测远程端口是否打开---nmap命令