就是26//52叉树
//模板
#define MAX 26
struct Trie
{
Trie *next[maxn];
int v;
Trie()
{
v=0;
for(int i=0;i<maxn;i++)
next[i]=NULL;
}
};
Trie *root;
void createTrie(char *str) //建树
{
int len=strlen(str);
Trie *p=root,*q;
for(int i=0;i<len;i++)
{
int id=str[i]-'a';
if(p->next[id]==NULL)
{
q=new Trie();
q->v=1;
p->next[id]=q;
p=p->next[id];
}
else
{
p=p->next[id];
p->v++;
}
}
}
int findTrie(char *str) //查找
{
int len=strlen(str);
Trie *p=root;
for(int i=0;i<len;i++)
{
int id=str[i]-'a';
if(p->next[id] == NULL)
return 0;
p = p->next[id];
}
return p->v;
}
void Release(Trie *p) //释放空间
{
if(NULL == p)
return ;
for (int i = 0;i < MAX;i ++)
if (p->next[i] != NULL)
Release(p->next[i]);
free(p);
root = NULL;
return ;
}
int main()
{
root=new Trie();
.....
.....
.....
return 0;
}
字典树——字典树树模板
最新推荐文章于 2021-02-03 21:01:37 发布