1.何为Trie树
Trie树,又叫字典树、前缀树,是用来高效存储和查询字符串的数据结构,是一种多叉树
上图就是一棵Trie树,表示了字符串的集合{"f","ab","ace","acd","cgm"},一棵Trie树应该是这样的:
1.根节点不存储字符,除此之外每一个子节点都有一个字符
2.从根节点到某一个结点连起来的路径就是该节点对应的字符串
3.每个节点的子节点存储的字符各不相同
4.Trie树不一定是二叉树,它是一种多叉树结构
2.Trie树的实现
Trie树我们选择用二维数组来模拟实现,首先定义一个son数组,为了知道每个字符串是否存在,我们在最后的每个节点处做了标记,定义一个cnt[p]数组来记录,最后再定义一个idx下标,来表示每个节点
const int N=100010;
int son[N][26],cnt[p],idx;
//son[][]存储树中每个节点的子节点
//cnt[]存储以每个节点结尾的单词数量
初始时p=0,idx=0,p=0表示此时Trie树为空,p在这里就相当于一个指针;而这里的son数组有两个维度,其中N是代表现在所处的节点位置,而后面的26则是代表当前所在节点的子节点都有26个字母的哪些字母,idx是下标,例如son[0] [0]表示当前在根节点上,它有一个子节点,其中存储了字符a。
&nbs

本文详细介绍了Trie树的概念、二维数组实现方法,包括插入和查询操作,并给出了一个字符串统计的例题。Trie树适用于高效存储和查找字符串,尤其在处理小写英文字母问题上表现突出。
最低0.47元/天 解锁文章
3万+





