真 . 题解
2024-12-21 14:14:04
发布于:广东
3阅读
0回复
0点赞
二叉搜索树绝对是最简单的做法!!新手们一定要来试一试(maybe)。
#include<bits/stdc++.h>
using namespace std;
struct node{
int lsum,rsum,val;
} tree[100005];
void add(int idx,int i,int x){
node tmp = tree[idx];
if(x > tmp.val){
if(tmp.rsum == 0){
tree[idx].rsum = i;
return;
}
add(tmp.rsum,i,x);
} else {
if(tmp.lsum == 0){
tree[idx].lsum = i;
return;
}
add(tmp.lsum,i,x);
}
}
void zhong(int idx){
node tmp = tree[idx];
if(tmp.lsum != 0) zhong(tmp.lsum);
cout << tmp.val << " ";
if(tmp.rsum != 0) zhong(tmp.rsum);
}
int main(){
int n = 3;
bool gen = 0;
for(int i = 1;i <= n;i ++){
int x;
cin >> x;
tree[i].val = x;
if(gen == 0){
gen = 1;
continue;
}
add(1,i,x);
}
zhong(1);
return 0;
}
这里空空如也
有帮助,赞一个