#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
#define inf 0x3f3f3f3f
struct node
{
int v;
node *left,*right;
};
node *insert(node *p,int x)
{
if(p==NULL)
{
node *q=new node;
q->v=x;
q->left=q->right=NULL;
return q;
}
else
{
if(x<p->v)
p->left=insert(p->left,x);
else
p->right=insert(p->right,x);
return p;
}
}
void find(node *p,int x)
{
if(p==NULL)
return;
else if(x==p->v)
return;
else if(x<p->v)
{
printf("E");
find(p->left,x);
}
else if(x>p->v)
{
printf("W");
find(p->right,x);
}
}
int main()
{
int t,n,m,x,y;
scanf("%d",&t);
while(t--)
{
node *root=NULL;
scanf("%d",&n);
for(int i=0; i<n; i++)
{
scanf("%d",&x);
root=insert(root,x);
}
scanf("%d",&m);
for(int i=0; i<m; i++)
{
scanf("%d",&y);
find(root,y);
printf("\n");
}
}
return 0;
}
平衡二叉树
最新推荐文章于 2024-08-06 23:23:19 发布