hdu 3791

//今天刚学完二叉查找树 找个题目练练 这个题目有点水 直接用数组存吧
//二叉查找树
#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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值