struct trie
{
int cnt;
trie *nxt[26];
trie()
{
cnt=1;
for(int i=0;i<26;i++)nxt[i]=NULL;
}
};
trie *root,*p,*q;
void Insert(char *str)
{
p=root;
for(int i=0;str[i];i++)
{
int id=str[i]-'a';
if(p->nxt[id]==NULL) p->nxt[id]=new trie();
else p->nxt[id]->cnt++;
p=p->nxt[id];
}
}
int Find(char *str)
{
p=root;
for(int i=0;str[i];i++)
{
int id=str[i]-'a';
p=p->nxt[id];
if(p==NULL) return 0;
}
return p->cnt;
}
void Del(trie *p)
{
for(int i=0;i<26;i++)
{
if(p->nxt[i]) Del(p->nxt[i]);
}
free(p);
}
字典树模板
最新推荐文章于 2017-04-27 12:40:06 发布