Data structures 基数在基数树中是什么意思?

Data structures 基数在基数树中是什么意思?,data-structures,tree,trie,Data Structures,Tree,Trie,我试图理解 我了解查找、插入和删除是如何使用它的。但我不明白基数在基数树中是什么意思 这里基数的用途是什么?有一些关于: 结果是,每个内部节点最多有基数trie的基数r的子节点数,其中r是正整数,幂x为2,x为≥ 一, 所以基数表示每个内部节点的子节点数,这个数必须是2的幂。当基数为2时,我们有一个熟悉的二叉树。正如@ta在中提到的,“基数”是trie的基础。在这种情况下,我们指的是数字基数,我们将考虑存储二进制数据。基数R=2^x,其中x>=1 以二进制(2元)trie为例。基数是2,因此在每

我试图理解

我了解查找、插入和删除是如何使用它的。但我不明白基数在基数树中是什么意思

这里基数的用途是什么?

有一些关于:

结果是,每个内部节点最多有基数trie的基数r的子节点数,其中r是正整数,幂x为2,x为≥ 一,


所以基数表示每个内部节点的子节点数,这个数必须是2的幂。当基数为2时,我们有一个熟悉的二叉树。

正如@ta在中提到的,“基数”是trie的基础。在这种情况下,我们指的是数字基数,我们将考虑存储二进制数据。基数R=2^x,其中x>=1

以二进制(2元)trie为例。基数是2,因此在每个节点上可以比较一位。这两个孩子将处理所有可能的结果:

  • 位为0
  • 位为1
下一个复杂级别将是4元trie。正如上面提到的@Garrett,基数必须是2的幂,这样它就可以始终处理我们使用的二进制数据的所有可能排序结果。四元trie可以比较两个二进制位和四种可能的结果:

  • 00
  • 01
  • 十,
  • 十,
这四个选项分别指向不同的子节点

现在,回答你关于英语字母基数的问题。您希望对从a到z(26个字母)的字母进行编码,因此需要有至少2^5=32的基数。这是最小的基数,可以让您在每个字母之间切换,并符合“二的幂”规则。2^4=16无法处理所有的字母

作为示例,让我们设想以下编码:

  • 00000代表“a”
  • 00001代表“b”
  • 。。。等
  • 11001表示“z”
  • 11010至11111未使用(尚未使用)
我们现在可以对树中每个节点的五个位进行比较,这样每个节点都可以在任何罗马字母之间切换。如果您想要一个能够处理大写字母的trie,那么您需要一个更大的基数。基数为2^6就足以做到这一点,但这是以trie中浪费更多空间(未使用的分支)为代价的


进一步阅读:。的第三版一般都很优秀,但对于多路尝试没有多大作用。

我已经发布了一个答案,作为对另一个线程的响应-。特别是基数Trie可能不是基数Trie的部分可能对这个问题特别感兴趣。

也许是的,我读过。我想知道,只包含英文字母的字符串基数树的基数是多少?