虽然很难找到“基数树”的一致定义,但大多数公认的基数树定义表明它是一个压缩的前缀树。在这种情况下,我很难理解的是“基数”一词的重要性。为什么压缩前缀树如此命名(即基数树),而非压缩的前缀树不叫基数树?基数中“基数”一词的含义
回答
维基百科可以回答这个问题,https://en.wikipedia.org/wiki/Radix:
在数学标记系统中,基数或碱是 独特位,包括零,用于在 定位数系来表示数字的数量。例如,对于十进制系统(目前使用的 最常见的系统)基数为10,因为它是通过9
使用从0 十位数和树https://en.wikipedia.org/wiki/Radix_tree:
一个数据结构,它表示一个空间优化的树,其中每个只有子节点的 节点与其父节点合并。其结果是 ,每个内部节点的子节点的数量为至少基数树,其中r是一正整数且x 2的幂的 基数R,的x≥1
最后检查字典:
1.radix(名词)
甲原始字,从中换句话说弹簧。
基数树中的基数决定了树的子树(或深度)的数量与“稀疏性”之间的平衡,或者多少个后缀是唯一的。
编辑 - 阐述
每一个内部节点的孩子的数量至少为基数[R
让我们考虑的话 “ABA,异常,痤疮,和深不可测”。在常规前缀树(或线索),每一个弧增加一个字母的单词,所以我们有:
-a-b-a-
n-o-r-m-a-l-
y-s-m-a-l-
-c-n-e-
,我的画有点误导 - 在尝试字母通常坐上弧,所以“ - '是一个节点,字母是边缘。注意很多内部节点有一个孩子!现在的紧凑型(和明显)形式:
-a-b -a-
normal-
ysmal-
cne-
现在好了,我们有一个内部节点(仅次于二)有3个孩子!基数是2的正幂,所以在这种情况下是2。为什么2而不是3?那么先注意根有2个孩子。另外,假设我们想添加一个词。选项:
- 股
b
前缀 - 好了,4比2 - 股
b
子的边缘更大 - 说“不正常”。那么插入的方式工作共用部分会分裂,我们将有:
相关分支:
-normal-ly-
-
正常现在是一个内部节点,但有2个孩子(一个叶)。 - 另一种情况是例如删除痤疮。但是,现在的紧性说b
后的节点必须合并回去,因为它是唯一的孩子,所以树变得
树:
-ab-a
-normal-ly-
-
-ysmal
因此,我们仍然维持孩子> 2。
希望澄清!
@ kabanus - 我无法理解_“每个内部节点至少是基数r”_。你会详细说明它的含义吗?以及为什么它不适用于非压缩Trie! – KGhatak
@ kabanus - 非常感谢您的耐心;即使我开始听起来不可能。顺便说一下,你是说,对于一个压缩的Trie,对于所有内部节点n,如果min(n的孩子数)> = 2^r那么r是压缩的trie的基数?也许我们可以首先定义这样一个Trie的基数! – KGhatak
我刚刚发现另一个很好的anwer:http://stackoverflow.com/questions/21204980/what-does-radix-mean-in-a-radix-tree-希望我更早看到了这一点。正如您所看到的,维护内部节点中所有可能的前缀所需的最小位数是基数。 – kabanus
- 1. 基数在基数树中的含义是什么?
- 2. 排序和基数在mysql索引中的含义是什么?
- 3. ::基本部分ActiveRecord :: Base中的含义
- 4. 基于NSNumber的词典排序数组
- 5. 基于第一个词省略数组中的元素
- 6. 定义基于一系列数字
- 7. 小数基数的标准基数?
- 8. 基于词典筛选数据表
- 9. PostgreSQL中的基数
- 10. 函数含义,它是如何删除零表达基因的?
- 11. 基于Python中基数的总和2.7
- 12. 模拟ulltoa()的基数/ 36基数
- 13. 什么是基于边缘和基于层次的含义?
- 14. 实现NodeEntity基类,标签的含义
- 15. 基于谓词函数的数据框的变化列(dplyr :: mutate_if)
- 16. 如何使用FFT将一个非常大的整数从一个基数/基数转换为另一个基数/基数?
- 17. 数据基数
- 18. 寻找同义词和倾斜词的基本形式
- 19. 基于表中包含的
- 20. 分割基于一组特定的词
- 21. 将DIV在含有DIV基于数值
- 22. PHP包含基于URL参数
- 23. 基于Python中的词典值从字符串数组中删除单词?
- 24. 基数排序:“基数”在基数排序中意味着什么?
- 25. “基本数据类型”和“内置数据类型”的含义是否相同?
- 26. 使用基于另一个谓词的谓词的谓词过滤数组,这是谓词的关键
- 27. 未定义的函数Javascript(基本)
- 28. 定义RDF语句的基数
- 29. 什么是基数的定义SQL
- 30. 从基数10转换为基数2
对于我的猜测,没有一个好的答案。我的意思是,特里树与基数树一样有“基数”。然而,有人使用这个术语,并保持这种方式。更重要的是,基数树是一个树的压缩版本,这就是为什么有些人使用术语压缩前缀树或压缩树。另外我使用术语PATRICIA来调用相同的数据结构。然而,有一些辩论,根据维基百科PATRICIA是一种特殊类型的基数树,用于存储二进制字符串。 –
我最终找到了答案,并将我的理解作为对另一个问题线索的回复发布了http://stackoverflow.com/questions/14708134/what-is-the-difference-between-trie-and-radix-trie-data - 结构/ 40567517#40567517 – KGhatak