数据结构实验之查找一:二叉排序树

来源:互联网 发布:侠义 知乎 编辑:程序博客网 时间:2024/06/07 03:45
#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;}

阅读全文
0 0