vector做法
2025-06-08 15:28:03
发布于:陕西
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
vector<int> tr[110];
//先序遍历 先自己,然后从左往右
void dfs1(int x){
cout<<x<<" ";
for(int son:tr[x]){
//如果没孩子
if(son==0)continue;
dfs1(son);
}
}
//中序遍历 先左,然后自己,后右
void dfs2(int x){
if(x==0)return;
if(tr[x].size()==2){
int l = tr[x][0];
int r = tr[x][1];
dfs2(l);
cout<<x<<" ";
dfs2(r);
}
if(tr[x].size()==1){
int l = tr[x][0];
dfs2(l);
cout<<x<<" ";
}
}
//后序遍历 先从左往右,然后自己
void dfs3(int x){
for(int son:tr[x]){
//如果没孩子
if(son==0)continue;
dfs3(son);
}
cout<<x<<" ";
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
int a,b,c;
cin>>a>>b>>c;
tr[a].push_back(b);
tr[a].push_back(c);
}
dfs1(1);
cout << endl;
dfs2(1);
cout << endl;
dfs3(1);
return 禁止抄袭!禁止抄袭!禁止抄袭!;
}
这里空空如也
有帮助,赞一个