啊这,还有什么问题,全部WA???!
#include <bits/stdc++.h>
using namespace std;
void insert(int);
void rk(int);
static struct node {
int data;
int left, right;
} a[10005];
int n;
int cnt;
int nums[10005];
int root;
int ne = 1;
int len;
int main() {
memset(a, 0, sizeof(a));
memset(nums, 0, sizeof(nums));
cin >> n;
for (int i = 1; i <= n; i++) {
int user;
cin >> user;
if (user == 5) {
len = 0;
int add;
cin >> add;
insert(add);
rk(1);
} else if (user == 1) {
int num;
cin >> num;
int t = 0;
for (int i = len; i >= 1; i--) {
t++;
if (nums[i] == num) {
cout << t << endl;
break;
}
}
// cout << bst(1, num, 0) << endl;
} else if (user == 2) {
int r;
cin >> r;
int tt = 0;
for (int i = len; i >= 1; i--) {
tt++;
if (tt == r) {
cout << nums[i] << endl;
break;
}
}
} else if (user == 3) {
int rr;
cin >> rr;
int ttt = 0;
for (int i = len; i >= 1; i--) {
ttt++;
if (nums[i] == rr) {
if (nums[i - 1] == 0) {
cout << "−2147483647" << endl;
break;
}
cout << nums[i - 1] << endl;
break;
}
}
} else if (user == 4) {
int rrr;
cin >> rrr;
int tttt = 0;
for (int i = len; i >= 1; i--) {
tttt++;
if (nums[i] == rrr) {
if (nums[i + 1] == 0) {
cout << "2147483647" << endl;
break;
}
cout << nums[i + 1] << endl;
break;
}
}
}
}
return 0;
}
void rk(int x) {
if (x == 0) return;
rk(a[x].left);
nums[++len] = a[x].data;
rk(a[x].right);
}
void insert(int value) {
if (root == 0) {
a[ne].data = value;
a[ne].left = 0;
a[ne].right = 0;
root = ne;
ne++;
return;
}
int temp = root;
while (true) {
if (value < a[temp].data) {
if (a[temp].left == 0) {
a[ne].data = value;
a[ne].left = 0;
a[ne].right = 0;
a[temp].left = ne;
ne++;
break;
} else {
temp = a[temp].left;
}
} else if (value > a[temp].data) {
if (a[temp].right == 0) {
a[ne].data = value;
a[ne].left = 0;
a[ne].right = 0;
a[temp].right = ne;
ne++;
break;
} else {
temp = a[temp].right;
}
}
}
}
大佬求调。。。