tree - 尝试和树之间的区别?

标签 tree trie

我记得,tries 并不存储每个节点的全部数据,只存储父节点的后缀。

树确实存储整个数据,但仅根据前缀组织自身。

所以尝试变得更小,这样可以很好地压缩字典。

这真的是唯一的区别吗?

从实际应用程序中,我记得范围查询中的尝试速度更快。甚至还有特殊的 solr/lucene trie 字段来加速范围查询。但怎么会这样呢?

try 和 trees 的实际区别是什么?优缺点是什么?

最佳答案

树是递归节点的一般结构。树木有很多种。热门的是binary treebalanced tree 。一个Trie是一种树,有许多名称,包括前缀树、数字搜索树和检索树(因此称为“trie”)。

每种树都有不同的用途、结构和行为。例如,二叉树存储可比较项(例如数字)的集合。因此,它可以用来存储一组数字,或者索引可以用数字表示的其他数据(例如可以散列的对象)。它的结构经过排序,因此可以快速搜索以查找单个项目。其他树结构,例如平衡树,原理上类似。

一个trie表示其结构中的序列。它的不同之处在于它存储值序列而不是单个值。每个递归级别都表示“输入列表中第 I 项的值是多少”。这与二叉树不同,二叉树将单个搜索值与每个节点进行比较。

关于tree - 尝试和树之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4737904/

相关文章:

JavaScript 递归验证

python - 在 sklearn 中可视化决策树

algorithm - 给定一组区间 S。你必须以最小时间复杂度找到 S 中包含在给定区间 (a, b) 中的所有区间

c - 为什么根会改变它的数据?

haskell - Trie-Set 的可折叠实例

algorithm - 尝试自定义插入和删除功能

arrays - 用数组存储k叉树

javascript - 动态选中/取消选中树中的复选框

java - JAVA中一个对象如何指向许多其他对象?

java - 具有公共(public)前缀的字符串的空间高效集合 - Java 实现