Trie树
地铁dixiatielu
2019-08-22 14:11:18
# 以下是一个蒟蒻自己写的Trie树模板
### 只是作为存储而已XD
```cpp
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;
```