我必须使用trys制作一个字典,字母表中的字母数将从26增加到120,因此叶节点的麻木程度将呈指数级增加。我可以使用什么优化来使我的查找、插入和删除时间不会呈指数级增长?
编辑让问题更清楚,很抱歉缺少细节我使用了一个类似基数树的多路三元组,并对其进行了一些修改。我的问题是,如果我知道单词大小将从26(肯定)增加到120,它将增加树的深度。是否可以通过将密钥增加到64位以上来减少深度的增加(寄存器最多可以增加64位)?
通常最好使用基于键的二进制表示的二进制trys和路径压缩(Patricia trys)。这样,你就可以获得尽可能小的字母表的好处,而且每个键仍然只有2个节点(一个叶子和一个内部)。
尽管可能会有一些优化,但我们的查找、插入和删除时间不会呈指数级增长。增加你的字母表集只意味着你的每个trie节点现在都会更大。每个单词的路径仍然具有相同的长度,该长度等于单词中的字母。