String 在给定一组单词的情况下,如何计算trie中的节点数
想知道是否有一种通用算法或技术来计算一个trie中有多少节点(以及多少字节) 假设有一个trie是这样开始的:String 在给定一组单词的情况下,如何计算trie中的节点数,string,math,data-structures,trie,String,Math,Data Structures,Trie,想知道是否有一种通用算法或技术来计算一个trie中有多少节点(以及多少字节) 假设有一个trie是这样开始的: a t p h e p e i l s r i s e e r ape apps apple the their there this 然后想象有一本包含数千个单词的大词典。每个单词由一组字母组成,这些字母来自字母表a。所以本质上我们可以生成不同长度的n个L(单词),比如100000个。它们在某
a t
p h
e p e i
l s r i s
e e r
ape
apps
apple
the
their
there
this
然后想象有一本包含数千个单词的大词典。每个单词由一组字母组成,这些字母来自字母表a
。所以本质上我们可以生成不同长度的n
个L
(单词),比如100000个。它们在某些情况下会重叠,因此在最终trie中占用的字节数将不仅仅是100000 x(平均长度)之类的东西。相反,它将是总数的一小部分
我想知道怎么计算这个。如果您需要实际生成数据,然后对其进行测量,或者如果有一种数学技术可以快速对其进行近似建模。我认为这可能会在输入数据上变化太大,因此您必须扫描数据才能得出答案。如果可以首先对输入数据进行排序,则实际上不必构造trytes:给定已排序的输入,您只需从扫描的每一行的最后一个常用字母中计算新字母。除了记住最后一个字符串之外,不需要任何分配,您可以在一次扫描中找到正确的答案 以您的示例为例,处理排序列表: