如上图,类似Google,百度这样的搜索引擎的关键字提示功能,你知道是怎么实现的吗?
虽然它们可能实现的比较复杂,考虑到情况比较多,但是归根结底就是一种数据结构Trie树,又称字典树。
首先我们先大体认识一下,知道它是一棵树。如下图:
现在当然看不出什么东西,最直观的感觉就是一棵多叉树而已,那么上面那棵树是如何形成的了?
这是输入hello hi her how see so这些单词构成的一棵字典树。我们发现从第二层的根节点出发,到每一个叶子节点的路径上面的字母的和就是一个单词!!!(顶层根节点不考虑)
如下是详细过程,
是不是非常简单,没错,字典树就是这么简单,当我们加入某个单词的时候,我们从第一个字母从字典树的根节点出发,查询下一层是否存在这个字母,如果存在那么就沿着这个节点往下走,并且处理下个字母,如果不存在