定义:Trie树是一种哈希树的变种,又称字典树,单词查找树或者前缀树,用于保存大量的字符串,是一种用于快速检索的多叉树结构(如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树)。
例如:假设词典由下面的单词构成:a、b、c、aa、ab、ac、ba、ca、aba、abc、baa、bab、bac、cab、abba、baba、caba、abaca、caaba 其对应的Trie树如下图所示: 思想:利用字符串的公共前缀来节约存储空间。 典型应用:统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。 优点:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 缺点:如果存在大量字符串且这些字符串基本没有公共前缀,则相应的trie树将非常消耗内存。 三个基本性质: 1. 根结点不包含字符,除根结点外每一个结点都只包含一个字符。 2. 从根结点到某一结点,路径上经过的字符连接起来,为该结点对应的字符串。 3. 每个结点的所有子结点包含的字符都不相同。 代码:
|
|
来自: yangshiquan > 《数据结构》