80分求助
#include<bits/stdc++.h>
using namespace std;
struct point{
int data,lson,rson;
}a[100001];
int n;
void xxbl(int root){
if(root==0)return ;
cout<<a[root].data<<' ';
xxbl(a[root].lson);
xxbl(a[root].rson);
}
void merge(int t,int root){
if(a[root].data==a[t].data)return ;
else if(a[root].data>a[t].data)
{
if(a[root].lson!=0)merge(t,a[root].lson);
else a[root].lson=t;
}
else{
if(a[root].rson!=0)merge(t,a[root].rson);
else a[root].rson=t;
}
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i].data);
merge(i,1);
}
xxbl(1);
}
那里错了?