生活随笔
收集整理的這篇文章主要介紹了
数组字典树模板
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
拿之前題解當模板的通用性太差了。。還是存個母版作為改的基礎比較好
暫時懶得學內存池,就都用數組版本吧
全局要把trie[0].init()一次
struct NODE{int nxt[10];int val;void init(){val=0;memset(nxt,-1,sizeof nxt);}
}trie[maxn];
int node_cnt=0;void insert(char *s){int len=strlen(s);int now=0;for(int i=0;i<len;i++){int id=s[i]-'0';int to=trie[now].nxt[id];if(to==-1){to=++node_cnt;trie[to].init();trie[now].nxt[id]=to;}now=to;}trie[now].val=1;
}
void del(char *s){int len=strlen(s);int now=0;for(int i=0;i<len;i++){int id=s[i]-'0';int to=trie[now].nxt[id];trie[to].init();now=to;}
}
int query(char *s){int len=strlen(s);int now=0;for(int i=0;i<len;i++){int id=s[i]-'0';int to=trie[now].nxt[id];if(to==-1)return -1;now=to;}return trie[now].val;
}
轉載于:https://www.cnblogs.com/Drenight/p/8611255.html
總結
以上是生活随笔為你收集整理的数组字典树模板的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。