还是找不到为什么下面的代码的问题
#include<iostream>
#include<cstring>
#include<memory.h>
using namespace std;
typedef struct node{
int key;
struct node *lchild,*rchild;
}*Btree,Node;
int item;
void createBtree(Btree &T,int *num,int n);
void preOrder(Btree &T,int *num1);
void inOrder(Btree &T,int *num2);
bool insertTree(Btree &T,int ele);
int main()
{
char a[15];
char b[15];
int a1[15];
int b1[15];
int bnum[15];
int anum[15];
int n;
Btree T,T1;
while(cin>>n && n)
{
memset(a,'\0',sizeof(a));
memset(b,'\0',sizeof(b));
memset(anum,-1,sizeof(anum));
memset(bnum,-1,sizeof(bnum));
cin>>a;
int length=strlen(a);
for(int j=0;j<length;j++)
{
anum[j]=a[j]-'0';
}
createBtree(T,anum,length);
while(n--)
{
cin>>b;
length=strlen(b);
for(int j=0;j<length;j++)
{
bnum[j]=b[j]-'0';
}
createBtree(T1,bnum,length);
memset(a1,-1,sizeof(a1));
memset(b1,-1,sizeof(b1));
item=0;
preOrder(T,a1);
item=0;
preOrder(T1,b1);
int k;
for(k=0;k<15;k++)
{
if(a1[k]!=b1[k])
{
cout<<"NO\n";
break;
}
}
if(k!=15)
break;
item=0;
inOrder(T,a1);
item=0;
inOrder(T1,b1);
for(k=0;k<15;k++)
{
if(a1[k]!=b1[k])
{
cout<<"NO\n";
break;
}
}
if(k==15)
cout<<"YES\n";
}
}
return 0;
}
void createBtree(Btree &T,int *num,int n)
{
T=NULL;
int i;
for(i=0;i<n;i++)
{
insertTree(T,num[i]);
}
}
bool insertTree(Btree &T,int ele)
{
if(T==NULL)
{
T=new Node;
T->key=ele;
T->lchild=T->rchild=NULL;
return true;
}
if(ele<T->key)
return insertTree(T->lchild,ele);
if(ele>T->key)
return insertTree(T->rchild,ele);
}
void inOrder(Btree &T,int *num2)
{
if(T)
{
inOrder(T->lchild,num2);
num2[item++]=T->key;
inOrder(T->rchild,num2);
}
}
void preOrder(Btree &T,int *num1)
{
if(T)
{
num1[item++]=T->key;
preOrder(T->lchild,num1);
preOrder(T->rchild,num1);
}
}
留着以后慢慢看!!!!