SDUT-2482

  一开始读题读错了,没有正确理解题意;题目说的是判断两序列是否为同一二叉排序树而不是说由两序列所建立的二叉排序树是否为同一棵树!真是失误,我的锅!

代码:

#include<bits/stdc++.h>
using namespace std;
typedef struct node
{
    char data;
    struct node *lchild;
    struct node *rchild;
}btnode;
btnode *tree=NULL,*tree1=NULL;
char biaozhun[15];
char s[15];
int qian,zhong,biao,hou;
char qianxu1[55],zhongxu1[55],houxu1[88];
void jianshu(btnode *&p,char k)
{
    if(p==NULL)
    {
        p=(btnode *)malloc(sizeof(btnode));
        p->data=k;
        p->lchild=p->rchild=NULL;
    }
    else if(k==p->data)
        return;
    else if(k<p->data)
        jianshu(p->lchild,k);
    else
        jianshu(p->rchild,k);
}
void qianxu(btnode *p)
{
    if(p)
    {
        qianxu1[qian++]=p->data;
        qianxu(p->lchild);
        qianxu(p->rchild);
    }
}
void zhongxu(btnode *p)
{
    if(p)
    {
        zhongxu1[zhong++]=p->data;
        zhongxu(p->lchild);
        zhongxu(p->rchild);
    }
}
void houxu(btnode *p)
{
    if(p)
    {
        houxu1[hou++]=p->data;
        houxu(p->lchild);
        houxu(p->rchild);
    }
}
int main()
{
    int i,len,m;
    while(cin>>m&&m!=0)
    {
        struct node *tree;
        tree=NULL;
        cin>>biaozhun;
        len=strlen(biaozhun);
        for(i=0;i<len;i++)
            jianshu(tree,biaozhun[i]);
        qian=0;
        qianxu(tree);
        zhong=0;
        zhongxu(tree);
        hou=0;
        houxu(tree);
        while(m--)
        {
            cin>>s;
            if(strcmp(qianxu1,s)==0||strcmp(zhongxu1,s)==0||strcmp(biaozhun,s)==0||strcmp(houxu1,s)==0)
                cout<<"YES"<<endl;
            else
                cout<<"NO"<<endl;
        }
    }
    return 0;
}

SDUT的OJ平台数据还是不够强大;我都看出来数据不完整了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值