• 字典树【模板】


    字典树:也是trie树,根节点不包含字符,除了根节点外每个节点包含一个字符,而且都不一样。从根结点单到某结点的连线就是所对应的字符串。可以查找,插入和删除。
    实现过程:从根节点开始,查找第一个单词,找到后再找相应的子树进行循环这个过程...

    模板如下:

    struct node
    {
        int cnt;     //记录该字符出现次数
         node *next[27];
    }*root;   //root根节点 
    void Maketree(char *str)     /*插入*/
    {
        int ans, i, len;
        node *p, *q;
        p=root; 
        len=strlen(str); 
        for(i=0; i<len; i++)
        {
            ans=str[i]-'a';
            if(p->next[ans]!=NULL)
            {
                p=p->next[ans];    //p指向父母结点 
                p->cnt++;
            }
            else
            {
                q=(node *)calloc(1, sizeof(node));    //创建新节点 
                p->next[ans]=q;    //q给该节点 
                p=q;    //p指向该节点 
                p->cnt=1;
            }
        }
    }
    void Findtree(char *str)     /*查找*/
    {
         int i, len, ans;
         node *p;
         p=root; 
         len=strlen(str); 
         for(i=0; i<len; i++)
         {
               ans=str[i]-'a';
             p=p->next[ans];
             printf("%c", str[i]);
             if(p->cnt==1)
                 break; 
         }
         printf("\n");
    }
  • 相关阅读:
    CF980E The Number Games
    UVALive 2995 Image Is Everything
    CF1148F Foo Fighters
    CF22E Scheme
    CF1045G AI robots
    学习笔记 并查集维护区间删除
    HEOI 十二省联考退役记
    立方网面试题总结
    Django学习排错备注
    追求卓越之旅(转)
  • 原文地址:https://www.cnblogs.com/Hilda/p/2635836.html
Copyright © 2020-2023  润新知