Trie树

地铁dixiatielu

2019-08-22 14:11:18

Personal

# 以下是一个蒟蒻自己写的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; ```