字典树

概念:字典树(TrieTree),是一种树形结构,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串,如01字典树)。主要思想是利用字符串的公共前缀来节约存储空间。很好地利用了串的公共前缀,节约了存储空间。字典树主要包含两种操作,插入和查找。

void search(char a[])
{
    int l=strlen(a);
    int p=1;
    for(int i=0;i<l;i++)
    {
        int ch=a[i]-'a';
        if(!tree[p][ch])    tree[p][ch]=++tot;
        p=tree[p][ch];
    }
    ed[p]++;
}
int ans;
int find(char a[])
{
    int l=strlen(a);
    int p=1;
    for(int i=0;i<l;i++)
    {
        int ch=a[i]-'a';
        p=tree[p][ch];
        if(p==0)            
        {
            return ans;
        }
        ans+=ed[p];         
    }
}
posted @ 2025-01-23 08:50  流氓兔LMT  阅读(17)  评论(0)    收藏  举报