zoukankan      html  css  js  c++  java
  • hdu 1671 复习字典树

    #include<cstdio>
    #include<iostream>
    #include<string>
    #include<cstdlib>
    #define maxn 10
    using namespace std;
    struct Tri
    {
        Tri*next[maxn];
        int num;
    };
    Tri *root;
    void buildTri(string ss)//建树的过程是一个动态的过程 动插的过程
    {
        Tri *p=root,*q;
        for(int i=0;i<ss.size();i++)
        {
            int id=ss[i]-'0';
            if(p->next[id]==NULL)
            {
                q=(Tri*)malloc(sizeof(Tri));
                q->num=1;
                for(int j=0;j<maxn;j++) q->next[j]=NULL;
                p->next[id]=q;
                p=p->next[id];
            }
            else p=p->next[id],p->num++;
        }
        p->num=-1;// 作为结束的标志
    }
    int findTri(string ss)
    {
        Tri *p=root,*q;
        for(int i=0;i<ss.size();i++)
        {
            int id=ss[i]-'0';
            p=p->next[id];
            if(p==NULL) return 0;
            if(p->num==-1) return -1;
        }
        return -1;
    }
    void del(Tri *root)
    {
        Tri *zz=root;
        if(zz==NULL) return;
        for(int i=0;i<maxn;i++)
        {
            if(zz->next[i]!=NULL) del(zz->next[i]);
        }
        free(zz);
    }
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
            root=(Tri*)malloc(sizeof(Tri));
            for(int i=0;i<maxn;i++) root->next[i]=NULL;
            root->num=1;
            int ret;
            cin>>ret;
            string ss;
            int flag=1;
            while(ret--)
            {
                cin>>ss;
                if(findTri(ss)==-1) flag=0;
            //    cout<<flag<<endl;
                buildTri(ss);
            }
            del(root);
            if(flag) cout<<"YES"<<endl;
            else cout<<"NO"<<endl;
    
        }
        return 0;
    }
  • 相关阅读:
    认识Java数组(一)
    Java之定时任务详解
    Java三大特征之多态(三)
    Java三大特征之继承(二)
    Java三大特征之封装(一)
    eclipse常用快捷键汇总
    JDK动态代理
    Java代理模式——静态代理模式
    CRISPR/Cas9基因敲除原理及实验建议
    MicroRNA 详解
  • 原文地址:https://www.cnblogs.com/z1141000271/p/5973677.html
Copyright © 2011-2022 走看看