题目1009:二叉搜索树

来源:互联网 发布:完美红颜进阶数据 编辑:程序博客网 时间:2024/05/19 02:18

#include <iostream>#include <stdio.h>#include <algorithm>#include <math.h>#include <string>#include <string.h>#include <vector>#include <queue>#include <stack>#include <sstream>using namespace std;//1009struct node{    node *l;    node *r;    int d;};node* Insert(node *&t,int x){    if(t==NULL){        t=(node*)malloc(sizeof(node));        t->l=t->r=NULL;        t->d=x;        return t;    }    else if(x<t->d)        Insert(t->l,x);    else if(x>t->d)        Insert(t->r,x);}void preOrder(node *t,vector<int> &v){    v.push_back(t->d);    if(t->l!=NULL)  preOrder(t->l,v);    if(t->r!=NULL)  preOrder(t->r,v); }void inOrder(node *t,vector<int> &v){    if(t->l!=NULL)    inOrder(t->l,v);    v.push_back(t->d);    if(t->r!=NULL)    inOrder(t->r,v);}string s1,s2;int n;vector<int> v1,v2;int main(){  //  freopen("input.txt","r",stdin);    while(cin>>n&&n!=0){        cin>>s1;        node* t1=NULL;        v1.clear();        for(int i=0;i<s1.size();i++)        Insert(t1,s1[i]-'0');        preOrder(t1,v1);        inOrder(t1,v1);        while(n--){            cin>>s2;v2.clear();            node *t2=NULL;            for(int i=0;i<s2.size();i++)    Insert(t2,s2[i]-'0');            preOrder(t2,v2);            inOrder(t2,v2);            if(v1==v2)  printf("YES\n");            else        printf("NO\n");        }    }    return 0;}/**************************************************************    Problem: 1009    User: cust123    Language: C++    Result: Accepted    Time:0 ms    Memory:1520 kb****************************************************************/


0 0
原创粉丝点击