• HDU5444 Elven Postman


    按要求递归建树输出~

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    const int maxn=1014;
    struct node  {
        int data;
        node * left;
        node * right;
    };
    int pre[maxn],in[maxn],T,N,q,x;
    void init () {
        fill (pre,pre+maxn,0);
        fill (in,in+maxn,0);
    }
    node * create (int preL,int preR,int inL,int inR) {
        if (preL>preR) return NULL;
        node * root=new node;
        root->data=pre[preL];
        int k;
        for (k=inL;k<=inR;k++) {
            if (in[k]==pre[preL]) break;
        }
        int numLeft=k-inL;
        root->left=create(preL+1,preL+numLeft,inL,k-1);
        root->right=create(preL+numLeft+1,preR,k+1,inR);
        return root;
    } 
    void dfs (node * root,int v) {
        if (root->data==v) {
            printf ("
    ");
            return;
        }
        if (v<root->data) printf ("E"),dfs (root->left,v);
        else printf ("W"),dfs (root->right,v);
    }
    int main () {
        scanf ("%d",&T);
        while (T--) {
            scanf ("%d",&N);
            for (int i=1;i<=N;i++) in[i]=i;
            for (int i=1;i<=N;i++) scanf ("%d",&pre[i]);
            node * root=create(1,N,1,N);
            scanf ("%d",&q);
            for (int i=0;i<q;i++) scanf ("%d",&x),dfs (root,x);
        }
        return 0;
    } 
  • 相关阅读:
    用class定义类--Python
    列表推导(list comprehension)--Python
    排序--Python
    腌制数据--python(pickle标准库)
    Python--异常处理
    Python--各种杂乱的笔记
    python--文件读写
    我靠 xmind居然可以在博客园这么分享
    思维导图记录
    思维导图记录
  • 原文地址:https://www.cnblogs.com/zhanglichen/p/12305572.html
Copyright © 2020-2023  润新知