最有爹味的题解
2026-01-31 13:52:32
发布于:广东
25阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 9;
struct node {
int va,l,r;
};
int n;
node tr[105];
void dfs1(int x){
cout<<tr[x].va<<" ";
if(tr[x].l)dfs1(tr[x].l);
if(tr[x].r)dfs1(tr[x].r);
}
void dfs2(int x){
if(tr[x].l)dfs2(tr[x].l);
cout<<tr[x].va<<" ";
if(tr[x].r)dfs2(tr[x].r);
}
void dfs3(int x){
if(tr[x].l)dfs3(tr[x].l);
if(tr[x].r)dfs3(tr[x].r);
cout<<tr[x].va<<" ";
}
int main() {
cin>>n;
for (int i=1;i<=n;i++) {
cin>>tr[i].va;
}
// 构建二叉搜索树
//从2开始去找位置,因为1的位置固定是第一个
for(int i=2;i<=n;i++){
int j=1; //每次都从根开始去遍历
while(true){
if(tr[j].va > tr[i].va){//要插入的数字小,往左走
if(tr[j].l==0){
tr[j].l = i; //爸爸,我来了
break;
}else{//换一个爸爸
j=tr[j].l;
}
}else{
if(tr[j].r==0){
tr[j].r = i; //爸爸,我来了
break;
}else{//换一个爸爸
j=tr[j].r;
}
}
}
}
// for(int i=1;i<=n;i++){
// cout<<tr[i].va<<" "<<tr[i].l<<" "<<tr[i].r<<endl;
// }
dfs1(1);
cout<<endl;
dfs2(1);
cout<<endl;
dfs3(1);
cout<<endl;
return 0;
}
全部评论 4
那个词就是'6逼'
2026-02-05 来自 广东
0.
2026-02-05 来自 广东
0我的天!这题解太完美了!
!注释都清晰的写了出来,让人一看就可以理解,而且十分幽默!连名字都符合题意,让人一看就懂,而不会十分不理解简直就是:此物只应天上有!!!!!!
2026-02-05 来自 广东
0Ai实锤,吹上天了
2026-02-05 来自 广东
0
牢大的爸爸是谁
2026-01-31 来自 广东
0



























有帮助,赞一个