没啥可讲的,就是一个对于大量字符串及其前缀的快速储存和查找的数据结构。
在时间复杂度上比map要小得多。
直接上模板:
struct node
{
int num,next[26];
}trie[500005];
int tot=1;
void inser(string c)//建树
{
int len=c.size(),p=1;
for(int i=0;i<len;i++)
{
int t=c[i]-'a';
if(trie[p].next[t]==0)
{
tot++;
trie[p].next[t]=tot;
p=trie[p].next[t];
}
else
{
p=trie[p].next[t];
}
}
}
void fi(string c)//查找
{
int len=c.size(),p=1,ans=0;
for(int i=0;i<len;i++)
{
int t=c[i]-'a';
p=trie[p].next[t];
}
}
本文介绍了一种用于大量字符串及其前缀快速储存和查找的数据结构——Trie树,并提供了高效的实现方法。相较于map,Trie树在时间复杂度上有显著优势。文章通过具体的代码示例展示了如何构建Trie树及进行字符串的插入与查找操作。
1385

被折叠的 条评论
为什么被折叠?



