字典树(Trie)概述
字典树,又名Trie树。顾名思义,在字典中很好用。我们在查牛津词典时都是先按第一个字母找到以这个字母为首的单词所在的初始位置,在此位置的基础上,再按照第二个字母继续找。。。
插一句,字符串的字典序也是这个意思,先按照第一个字母排序,第一个字母相同的情况下再按照第二个字母排序。
字典树的数据结构图:
注意:节点中的value并不存储字符,节点中的value按需使用。每个节点中的next数组存储26(如果只有小写字母的话)个next节点的地址。
例一
某个字符串在一堆字符串中出现的次数,或者一堆字符串中含有某个前缀的字符串的个数。
#include<iostream>
#include<string>
using namespace std;
//表示next数组的长度,表示26个字母。如果字符串中有其他字符的话,应相应调整。
//如果所有的字符串都是手机号的话,那就是10了
const int MAX_NUM = 26;
struct trieNode{
int i;

本文介绍了字典树(Trie树)的基本概念,它在查找和排序字符串时的高效性。通过一个实例展示了如何利用Trie树来统计字符串出现的次数或含有特定前缀的字符串数量。
最低0.47元/天 解锁文章
668

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



