Trie 字典树的引入
Trie,就是我们常说的字典树,一般用树形结构来建立,用图像表示可以十分清晰直观的看出整个的结构。
具体的树形结构如何建立、构造就不细说了,已经有很详细的大佬写的博客数据结构与算法(十一)Trie字典树.
这里主要说一说如何用数组的方式构建字典树。我也是今天看到一个相关的题目才接触到这个概念。因为用树形结构构建比较复杂(代码比较多),当解决一些简单的前缀或者查找问题时,就可以用数组来模拟一个简单的字典树结构。
思路
要记住是用数组来实现字典树的模拟,对于字典树中,一个字母有两种特性,分别是他所在的层数和他所在的字符串。在模拟过程中,我们也需要有这样的结构来确保一个字符在数组中的结构不会被打乱。
构建字典树的关键是一个二维数组Trie[n][26],和一个索引index。
Trie用于存放当前字典树,index表示当前字典树的最大层数。
下面直接上代码,只给出插入函数的部分,实际的应用当然是多种多样的。
//n的值自己定义,其实用动态数组的话是最好的
#defi