#include<iostream>
#include<malloc.h>
#include<string.h>
using namespace std;
typedef struct BiTNode{
char data;
BiTNode *lchild;
BiTNode *rchild;
}BiTNode,*BiTree;
// 9
// 4 10
// 3 5
BiTNode *Insert(BiTree &T,char e){
if(!T){
T = (BiTNode *)malloc(sizeof(BiTNode));
T->data = e;
T->lchild = T->rchild = NULL;
}
else if(e < T->data) T->lchild=Insert(T->lchild,e);
else T->rchild=Insert(T->rchild,e);
return T;
}
void PreOrder(BiTree T,char str[],int &len){
if(T){
str[len++] = T->data;
PreOrder(T->lchild,str,len);
PreOrder(T->rchild,str,len);
}
}
void InOrder(BiTree T,char str[],int &len){
if(T){
InOrder(T->lchild,str,len);
str[len++] = T->data;
InOrder(T->rchild,str,len);
}
}
void Destroy(BiTree &T){
if(T){
Destroy(T->lchild);
Destroy(T->rchild);
free(T);
}
}
void GetPreIn(char s[]){
char str[11];
cin>>str;
BiTree T=NULL;
for(int i=0;str[i];++i)
T = Insert(T,str[i]);
int len=0;
PreOrder(T,s,len);
InOrder(T,s,len);
s[len] = 0;
Destroy(T);
}
int main(){
int n;
while(cin>>n){
if(n==0) break;
char s1[25],s2[25];
GetPreIn(s1);
while(n--){
GetPreIn(s2);
if(strcmp(s1,s2)==0)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
return 0;
}
/*
2
567432
543267
576343
*/
九度OJ二叉搜索树
最新推荐文章于 2018-02-13 10:59:41 发布