徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
下载
比浏览器更快的访问!
 

Trie

指数 Trie

在计算机科学中,trie,又称前缀树或字典樹,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。 Trie这个术语来自于retrieval。根据词源学,trie的发明者Edward Fredkin把它读作 "tree"。但是,其他作者把它读作 "try"。 在图示中,键标注在节点中,值标注在节点之下。每一个完整的英文单词对应一个特定的整数。Trie可以看作是一个确定有限状态自动机,尽管边上的符号一般是隐含在分支的顺序中的。 键不需要被显式地保存在节点中。图示中标注出完整的单词,只是为了演示trie的原理。 trie中的键通常是字符串,但也可以是其它的结构。trie的算法可以很容易地修改为处理其它结构的有序序列,比如一串数字或者形状的排列。比如,bitwise trie中的键是一串位元,可以用于表示整数或者内存地址。.

9 关系: AC自动机算法Apache ZooKeeper基数树后缀树三元搜索树四叉树树 (图论)朱迪矩陣数据结构术语列表

AC自动机算法

在计算机科学中,Aho–Corasick算法是由Alfred V. Aho和Margaret J.Corasick 发明的字符串搜索算法,用于在输入的一串字符串中匹配有限组“字典”中的子串。它与普通字符串匹配的不同点在于同时与所有字典串进行匹配。算法均摊情况下具有近似于线性的时间复杂度,约为字符串的长度加所有匹配的数量。然而由于需要找到所有匹配数,如果每个子串互相匹配(如字典为a,aa,aaa,aaaa,输入的字符串为aaaa),算法的时间复杂度会近似于匹配的二次函数。 该算法主要依靠构造一个有限状态机(类似于在一个trie树中添加失配指针)来实现。这些额外的失配指针允许在查找字符串失败时进行回退(例如设Trie树的单词cat匹配失败,但是在Trie树中存在另一个单词cart,失配指针就会指向前缀ca),转向某前缀的其他分支,免于重复匹配前缀,提高算法效率。 当一个字典串集合是已知的(例如一个计算机病毒库), 就可以以离线方式先将自动机求出并储存以供日后使用,在这种情况下,算法的时间复杂度为输入字符串长度和匹配数量之和。 UNIX系统中的一个命令fgrep就是以AC自动机算法作为基础实现的。.

新!!: Trie和AC自动机算法 · 查看更多 »

Apache ZooKeeper

Apache ZooKeeper是Apache软件基金会的一个软件项目,他为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。 ZooKeeper曾经是Hadoop的一个子项目,但现在是一个独立的顶级项目。 ZooKeeper的架构通过冗余服务实现。因此,如果第一次无应答,客户端就可以询问另一台ZooKeeper主机。ZooKeeper节点将它们的数据存储于一个分层的命名空间,非常类似于一个文件系统或一个前缀树结构。客户端可以在节点读写,从而以这种方式拥有一个共享的配置服务。更新是全序的。 使用ZooKeeper的公司包括Rackspace、雅虎和eBay,以及类似于象Solr这样的开源系统。.

新!!: Trie和Apache ZooKeeper · 查看更多 »

基数树

在计算机科学中,基数树,或称Patricia trie/tree,或crit bit tree,压缩前缀树,是一种更节省空间的Trie(前缀树)。对于基数树的每个节点,如果该节点是唯一的子樹的话,就和父节点合并。.

新!!: Trie和基数树 · 查看更多 »

后缀树

后缀树(Suffix tree)是一种数据结构,能快速解决很多关于字符串的问题。后缀樹的概念最早由Weiner於1973年提出,既而由McCreight在1976年和Ukkonen在1992年和1995年加以改進完善。 一个string S的后缀树是一个边(edge)被标记为字符串的树。因此每一个S的后缀都唯一对应一条从根节点到叶节点的路径。这样就形成了一个S的后缀的基数树(radix tree)。后缀树是前缀树(trie)里的一个特殊类型。 Category:树结构 Category:子字符串索引 Category:字符串数据结构.

新!!: Trie和后缀树 · 查看更多 »

三元搜索树

三元搜索树在计算机科学中是trie树或前缀树的一种实现,树的各个节点之间的结构类似二叉搜索树。和其他的前缀树一样,三元搜索树可以用于实现带前缀搜索功能的关联数组。三元搜索数比标准的前缀树更节省空间,但是牺牲了部分查找速度。三元搜索树常用于实现拼写检查和自动完成功能。.

新!!: Trie和三元搜索树 · 查看更多 »

四叉树

四元樹又稱四叉樹是一種樹狀資料結構,在每一個節點上會有四個子區塊。四元樹常應用於二維空間資料的分析與分類。 它將資料區分成為四個象限。資料範圍可以是方形或矩形或其他任意形狀。這種資料結構是由 拉斐爾·芬科爾(Raphael Finkel) 與 J. L. Bentley 在1974年發展出來 。 類似的資料分割方法也稱為 Q-tree。 所有的四元樹法有共同之特點.

新!!: Trie和四叉树 · 查看更多 »

树 (图论)

在图论中,树(Tree)是一種無向圖(undirected graph),其中任意两个顶点间存在唯一一條路径。或者说,只要没有回路的连通图就是树。森林是指互相不交并树的集合。树图广泛应用于计算机科学的数据结构中,比如二叉查找树,堆,Trie树以及数据压缩中的霍夫曼树等等。.

新!!: Trie和树 (图论) · 查看更多 »

朱迪矩陣

Judy array是一个计算机科学和软件工程学中的名词,是一种高性能、低内存消耗的数据结构,实现了关联数组的功能。与普通数组不同,Judy array可以是稀疏的,这一点更像是散列表,而非数组。Judy array可以用整形或字符串作为键值来存储、查询数据,它最大的优势是可动态自动扩展,高性能,节省内存并且易于使用。 由于Judy array在操作速度和内存使用上都非常高效,同时并不需要特殊配置或初始化,使得它可以用来替换掉多种常见数据结构,例如跳跃列表,链表,二叉树,B树,散列表,而且judy array在海量数据集上的表现比那些数据结构更好。 粗略地讲,Judy array像是一个高度优化了的256叉树,为了节省内存,它使用了超过20种不同的压缩技术来压缩树节点。.

新!!: Trie和朱迪矩陣 · 查看更多 »

数据结构术语列表

这是一个数据结构的列表。更详细的内容请参考数据结构与算法列表。.

新!!: Trie和数据结构术语列表 · 查看更多 »

重定向到这里:

Trie树字典树字母树前缀树索回树键树

传出传入
嘿!我们在Facebook上吧! »