Trie树,

即字典树,
又称单词查找树或键树,
多叉树

基本性质

根节点不包含字符,除根节点外每一个节点都只包含一个字符
从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串
每个节点的所有子节点包含的字符都不相同

本质:

利用字符串之间的**公共前缀**,将重复的前缀合并在一起

Trie树简介-LMLPHP

主要操作

构造trie 树
在Trie 树中查询一个字符串

存储

借助散列表存储
![](https://img2018.cnblogs.com/blog/757665/201910/757665-20191018154147074-1127642070.png) 这种存储方法在公共前缀不多和字符串包含的字符集复杂(中英文,大小写)时会占用很多时间
可以稍微牺牲一些查询效率,将每个节点的数据结构换成其它数据结构,来存储一个节点的子节点指针(有序数组,跳表、红黑树)

应用场景:

不适合精确匹配查找,
适合公共前缀查找
搜索关键词提示功能
自动输入补全(IDE、浏览器、输入法)
单词纠错

核心思想

空间换时间,利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的
05-26 20:04