#include <bits/stdc++.h>
using namespace std;
int cnt;
typedef struct BiTNode
{
int data;
struct BiTNode *lchild;
struct BiTNode *rchild;
} BiTNode,*BiTree;
BiTree Create(BiTree T,int x)
{
if(T == NULL)
{
T = new(BiTNode);
T->data = x;
T->lchild = NULL;
T->rchild = NULL;
}
else
{
if(x < T->data)
{
T->lchild = Create(T->lchild,x);
}
else
{
T->rchild = Create(T->rchild,x);
}
}
return T;
}
void Judge(BiTree T,BiTree T1)
{
if(T || T1)//******当两棵树的节点都为空时,不进入比较
{
if(T->data != T1->data)
{
cnt = 1;
return;
}
Judge(T->lchild,T1->lchild);
Judge(T->rchild,T1->rchild);
}
}
int main()
{
int n,l;
while(cin>>n>>l &&n != 0)
{
BiTree T;
T = NULL;//定义完一棵树后要初始化
int i,x;
for(i = 0; i <= n - 1; i++)
{
cin>>x;
T = Create(T,x);
}
while(l--)
{
BiTree T1;
T1 = NULL;
for(i = 0; i <= n - 1; i++)
{
cin>>x;
T1 = Create(T1,x);
}
cnt = 0;
Judge(T,T1);
if(cnt == 0)
{
cout<<"Yes"<<endl;
}
else
{
cout<<"No"<<endl;
}
}
}
return 0;
}
数据结构实验之查找一:二叉排序树
最新推荐文章于 2018-12-18 20:39:01 发布