当前位置:网站首页>二叉树的遍历
二叉树的遍历
2022-08-04 19:37:00 【-JMY-】
题目描述
给出一个n个结点的二叉树,请求出二叉树的前序遍历,中序遍历和后序遍历。
输入
第一行有一个整数n(0<n<=26),表示二叉树有n个结点;
以下n行,每行第一个为一个大写字母表示结点的值,第i+1行的结点编号为i;后面为两整数,第一个表示该结点左孩子结点编号,第二个表示该结点右孩子的结点编号,如果该编号为0表示没有;(编号为1的结点是树的根)
输出
共三行,第一行为二叉树的前序遍历,第二行为中序遍历,第三行为后序遍历
样例输入
7 F 2 3 C 4 5 E 0 6 A 0 0 D 7 0 G 0 0 B 0 0
样例输出
FCADBEG ACBDFEG ABDCGEF
提示
样例对应的二叉树如图所示:
参考代码:
#include<bits/stdc++.h>
using namespace std;
int a[30][2],n,x,y;
char c,s[30];
void f1(int i){
cout<<s[i];
if(a[i][0]!=0)
f1(a[i][0]);
if(a[i][1]!=0)
f1(a[i][1]);
return;
}
void f2(int i){
if(a[i][0]!=0)
f2(a[i][0]);
cout<<s[i];
if(a[i][1]!=0)
f2(a[i][1]);
return;
}
void f3(int i){
if(a[i][0]!=0)
f3(a[i][0]);
if(a[i][1]!=0)
f3(a[i][1]);
cout<<s[i];
return;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>c>>x>>y;
a[i][0]=x;
a[i][1]=y;
s[i]=c;
}
f1(1);
cout<<'\n';
f2(1);
cout<<'\n';
f3(1);
return 0;
}
边栏推荐
猜你喜欢
ERC20转账压缩
Jmeter - Heap配置原因报错Invalid initial heap size: -Xms1024m -Xmx2048mError
JS手写JSON.stringify() (面试)
Dragoma (DMA) Metaverse System Development
力扣题(5)—— 最长回文子串
【Attention演变史】翻译模型seq2seq (第二弹)
Polygon zkEVM 基本概念
How to monitor code cyclomatic complexity by refactoring indicators
How to promote the implementation of rural revitalization
Finger Vein Recognition-matlab
随机推荐
程序员如何在职场上少走弯路?
Initialization process of SAP UI5
SAP UI5 ensures that the control id is globally unique implementation method
数据库治理的探索与实践
如何给MySQL添加自定义语法 ?
基于YOLOV5行人跌倒检测实验
SAP UI5 的初始化过程
The establishment of simple data cache layer
Dragoma(DMA)元宇宙系统开发
将网页变成字符串,并保存起来
Pedestrian fall detection experiment based on YOLOV5
VQ Realization of Wavelet Extraction Features
重构指标之如何监控代码圈复杂度
"WAIC 2022 · hackers marathon" two ants wealth competition invited you to fight!
awk 统计差值记录
致-.-- -..- -
华为企业组网实例:VRRP+MSTP典型组网配置
IDEA 自动导入的配置(Auto import)
高效目标检测:动态候选较大程度提升检测精度(附论文下载)
Notepad++更改显示背景