Trie

✍ dations ◷ 2025-06-09 23:23:31 #数据结构

在计算机科学中,trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。

Trie这个术语来自于retrieval。根据词源学,trie的发明者Edward Fredkin把它读作/ˈtriː/ "tree"。但是,其他作者把它读作/ˈtraɪ/ "try"。

在图示中,键标注在节点中,值标注在节点之下。每一个完整的英文单词对应一个特定的整数。Trie可以看作是一个确定有限状态自动机,尽管边上的符号一般是隐含在分支的顺序中的。

键不需要被显式地保存在节点中。图示中标注出完整的单词,只是为了演示trie的原理。

trie中的键通常是字符串,但也可以是其它的结构。trie的算法可以很容易地修改为处理其它结构的有序序列,比如一串数字或者形状的排列。比如,bitwise trie中的键是一串比特,可以用于表示整数或者内存地址。

trie树常用于搜索提示。如当输入一个网址,可以自动搜索出可能的选择。当没有完全匹配的搜索结果,可以返回前缀最相似的可能。

trie树实际上是一个确定有限状态自动机(DFA),通常用转移矩阵表示。行表示状态,列表示输入字符,(行,列)位置表示转移状态。这种方式的查询效率很高,但由于稀疏的现象严重,空间利用效率很低。也可以采用压缩的存储方式即链表来表示状态转移,但由于要线性查询,会造成效率低下。

于是人们提出了下面两种结构。

三数组Trie(Triple-Array Trie)结构包括三个数组:base,next和check.

二数组Trie(Double-Array Trie)包含base和check两个数组。base数组的每个元素表示一个Trie节点,即一个状态;check数组表示某个状态的前驱状态。

这是一个用于词频统计的程序范例,因使用了getline(3),所以需要glibc才能链接成功,没有glibc的话可以自行改写。

相关

  • 木豆木豆(学名:Cajanus cajan),又名蒲姜豆、木豆、米豆、树豆、柳豆、白树豆、花螺树豆、观音豆、番仔豆、山豆根,为豆科木豆属下的一个种,台湾一般称为树豆,阿美语称 fata'an,泰雅语称
  • 精神状态检查异常心理学 行为遗传学 生物心理学 心理药物学 认知心理学 比较心理学 跨文化心理学 文化心理学 差异心理学(英语:Differential psychology) 发展心理学 演化心理学 实验心理学
  • 台积电台湾积体电路制造股份有限公司(英语:Taiwan Semiconductor Manufacturing Company, Limited),通称台积电、台积或TSMC,与旗下公司合称时则称做台积电集团,是全球最大的晶圆代工半
  • 办公楼办公室(office),又称写字楼,是一种让人们在其中办公(工作)的场所,通常是房间的形态,但随着电脑与网络的发达,也渐渐出现不需要实体空间的虚拟办公室(Virtual Office)。内部由办公室所组
  • 英国大区英国地域统计单位命名法(英语:NUTS of United Kingdom)的编码分成三种等级:2003年的版本里,东北苏格兰(包含部分马里)的编码为UKM1,而高地和群岛的编码为UKM4。NUTS 2006的版本于200
  • 约翰·格登约翰·伯特兰·格登爵士,FRS,(英语:Sir John Bertrand Gurdon,1933年10月2日-),英国发育生物学家。他主要以在细胞核移植与克隆方面的先驱性研究而知名。2009年与日本成体干细胞专家
  • 1974年欧洲歌唱大赛1974年欧洲歌唱大赛(英语:Eurovision Song Contest 1974)为欧洲歌唱大赛的第19届比赛,由英国广播公司主办,1974年4月6日在英国布赖顿举行,并由凯蒂·博伊尔担任该届司仪。该届本由
  • 小寒 (填词人)小寒(?-)是当今华语流行乐坛中一位女填词人,来自新加坡,为许多畅销歌手如陈奕迅、林俊杰、林忆莲、蔡健雅、方大同、蔡依林、孙燕姿、EXO等填词。自1998年起,小寒便以细腻的手法与
  • Edge (杂志)《Edge》是由英国Future plc出版的多格式的电子游戏杂志。其以行业人脉关系、社论立场、独特的匿名第三人称写作风格、年度大奖与长寿而出名。此外杂志亦曾经在英国以外的地
  • 富贵烤双方富贵烤双方又称富贵双方,是一道彭长贵创作的湘菜。最早出现于国宴中,亦在湘菜馆中出现。彭老有位做火腿的朋友,三天两头就要调头寸。正所谓“救急不救穷”,为了帮助这位朋友,彭老