写这道题目是想练练静态的二叉查找树
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<vector>
#include<cmath>
#include<string>
#include<algorithm>
#include<set>
#include<map>
#include<cstring>
#include<queue>
#include<stack>
#include<list>
using namespace std;
typedef long long ll;
const int maxn=1000+5;
const ll inf=1e9;
const ll mod=1e9+7;
struct tree{
int root,childs[maxn][2];
int node[maxn],cnt;
void start(){
memset( childs,0,sizeof(childs) );
memset(node,0,sizeof(node));
cnt=1;
root=0;
}
void insert( int &fa,int x ){
if( fa==0 ){
node[cnt]=x;
fa=cnt++;
childs[fa][0]=childs[fa][1]=0;
}
else if( node[fa]==x ){
return ;
}
else if( node[fa]>x ){
insert( childs[fa][0],x );
}
else if( node[fa]<x ){
insert( childs[fa][1],x );
}
}
void find( int fa,int x ){
if( node[fa]==x )return ;
if( x<node[fa] ){
printf("E");
find( childs[fa][0],x );
}
else if( x>node[fa] ){
printf("W");
find( childs[fa][1],x );
}
}
};
tree t;
int main()
{
int T;
scanf("%d",&T);
while(T--){
int n;
scanf("%d",&n);
t.start();
for(int i=0;i<n;i++){
int x;
scanf("%d",&x);
t.insert(t.root,x);
}
int p;
scanf("%d",&p);
for(int i=0;i<p;i++){
int x;
scanf("%d",&x);
t.find(t.root,x);
printf("\n");
}
}
return 0;
}