想知道是否有通用算法或技术来计算一个特里中有多少个节点(因此有多少个字节)。
所以说有一个像这样开始的特里:
a t
p h
e p e i
l s r i s
e e r
ape
apps
apple
the
their
there
this
然后想象一下,那里有成千上万个单词的大型词典。每个单词由一组字母L
中的一组字母A
组成。因此,从本质上讲,我们可以生成n
个L
的(单词)数量,例如100,000,各种长度。它们在某些情况下会重叠,因此在最后的Trie中占用的字节数将不仅仅是100,000 x(平均长度)。而是占总数的一小部分。
我想知道如何计算。如果您需要实际生成数据然后进行测量,或者有一种数学技术可以快速对其进行近似建模。
答案 0 :(得分:1)
我认为输入数据的差异可能太大,因此您将不得不对其进行扫描以找出答案。如果您可以先对输入数据进行排序,则实际上不必构造尝试:给定排序后的输入,您只需对扫描的每一行中的最后一个公共字母中的新字母进行计数即可。除了记住最后一个字符串,不需要任何分配,而且您可以在一次扫描中找到正确的答案。
以您的示例为例,处理排序列表:
与您的具有16个节点的图相匹配。