SDUT-2482

来源:互联网 发布:apache subversion 编辑:程序博客网 时间:2024/06/08 08:17

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

代码:

#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平台数据还是不够强大;我都看出来数据不完整了!

原创粉丝点击