Trie树

以下是一个蒟蒻自己写的Trie树模板

只是作为存储而已XD

struct Trie
{
    int ch[MAXN][26],sz,val[MAXN];
    Trie()
    {
        memset(ch[0],0,sizeof(ch[0]));
        memset(val,0,sizeof(val));
        sz = 1;
    }//初始化
    int qnum(char c)
    {
        return c - 'a';
    }
    void insert(char s[],int v)//插入
    {
        int u = 0,len = strlen(s);
        //深度和长度
        for(int i = 0;i < len;i++)
        {
            int c = qnum(s[i]);
            if(!ch[u][c])//没有此节点
            {
                memset(ch[sz],0,sizeof(sz));
                val[sz] = 0;
                ch[u][c] = sz++;
            }
            u = ch[u][c];
        }
        val[u] = v;
    }
    int query(char s[])//查询
    {
        int u = 0,len = strlen(s);
        for(int i = 0;i < len;i++)
        {
            int c = qnum(s[i]);
            if(!ch[u][c])
            {
                return -1;
            }
            u = ch[u][c];
        }
        return val[u];
    }
}tree;

发表于 2019-08-22 14:11:18 in 杂项