Trie树是一种多叉树结构,通常用来统计和排序大量的字符串。
上图所示就是一棵Trie树。该树包含的字符串集合为{“at”, “bee”, “ben”, “bt”, “q”}。 Trie树有如下特点:
根节点不包含字符,除根节点外每一个节点都只包含一个字符。从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。每个节点的所有子节点包含的字符都不相同。 Trie树将字符串存储在一条路径上。Trie树是以空间换时间。用字符串的公共前缀来降低查询时间开销以达到提高效率的目的。 优点:
可以最大限度减少无畏的字符串比较,查询效率高。它插入和查询的时间复杂度都为O(k),其中k为key的长度。Trie树中不同的关键字不会产生碰撞Trie树可以对关键字按字典序排序缺点:
空间消耗大当hash函数很好时,效率不如哈希搜索利用字符串创建一棵Trie树,这个Trie树保留了字符串的公共前缀。以小写英文单词创建字典树为例,每一个节点都有26个孩子(有26个字母)。
结构如下:
新闻热点
疑难解答