字典树 trie

    

Trie,又称字典树,前缀树(prefix tree),是一种树形结构,用于保存大量的字符串。

它的优点是:利用字符串的公共前缀来节约存储空间。查找、插入复杂度为O(n),n为字符串长度。 

它有3个基本性质:

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

 

假设有abc,abcd,abd, b, bcd,efg,hii这7个单词,可构建字典树如下:'

字典树 trie_第1张图片

 

 

它的缺点就是空间浪费太大,如上图中的树,他的需要的空间是  26^4  ,和每个节点的孩子个数以及层高相关的,其实上面的树是一个很稀疏的,很多的空间都是浪费的。接下来介绍的double array trie 将避免这种问题

 

 

你可能感兴趣的:(tree,存储)