//今天刚学完二叉查找树 找个题目练练 这个题目有点水 直接用数组存吧
//二叉查找树
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max 3000
char Tree1[1100],Tree2[max],Tree3[max];
void buildTree(char *temTree,int pos,char data)
{
if(temTree[pos]=='.')
{
temTree[pos]=data;
return ;
}
if(temTree[pos]<data)
{
buildTree(temTree,pos*2+1,data);
}
else if(temTree[pos]>data)
{
buildTree(temTree,pos*2,data);
}
else ;
}
int main()
{
int len;
while(scanf("%d",&len),len)
{
// memset(Tree1,'.',sizeof(Tree1));
memset(Tree2,'.',sizeof(Tree2));
scanf("%s",Tree1);
for(int i=0; i<strlen(Tree1); i++)
{
buildTree(Tree2,1,Tree1[i]);
}
for(int i=0; i<len; i++)
{
// memset(Tree1,'.',sizeof(Tree1));
memset(Tree3,'.',sizeof(Tree3));
scanf("%s",Tree1);
for(int j=0; j<strlen(Tree1); j++)
{
buildTree(Tree3,1,Tree1[j]);
}
if(strcmp(Tree2,Tree3)==0)
printf("YES\n");
else
printf("NO\n");
}
}
return 0;
}
hdu 3791
最新推荐文章于 2020-05-09 08:03:20 发布