没有平衡之前的,感觉好垃圾;
#include<iostream> #include<cstdio> using namespace std; struct node{ int l,r,date; int *newnode; }tree[100001]; int d,bank=1; void build(int pos,int date) { if(tree[pos].date==0){tree[pos].date=date;return ;} else{ if(date<=tree[pos].date){ if(tree[pos].l==0) tree[pos].l=++bank; build(tree[pos].l,date);} else { if(tree[pos].r==0) tree[pos].r=++bank; build(tree[pos].r,date);} // cout<<bank<<" "<<endl; } } void mid(int x) { if(x) { mid(tree[x].l); cout<<tree[x].date<<" "; mid(tree[x].r); } } int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&d); build(1,d); } mid(1); }