我正在尝试创建一个可以存储重复键的搜索树,并为所述键设置不同的值。
基本上,我有一个位串形式的哈希码。值是位串,键是位串中出现的1的数字。
例如,我可以有两个位字符串:
key1 = 4;
key2 = 4;
所以他们有相同的键:
{{1}}
是否可以将其实现到搜索树中?
答案 0 :(得分:0)
我无法发表直接评论,但你能不仅拥有一棵树而且还有一张静态地图或其他东西?如果是这样,我认为以下链接会有所帮助。
我看到它的方式,你有一个案例,其中键4可能具有可能的值,那么如何声明像map <Integer, List<String>>
这样的地图,下面的链接中描述了其他方法。再次抱歉将此作为答案发布,但我无法发表评论。
如果您真的想将它们存储为单独的密钥,那么我认为第二个链接可能更有用。
答案 1 :(得分:0)
一种可能性是二叉搜索树,其中节点包含与键匹配的值列表。这是对标准二进制搜索树的一个非常简单的补充,但如果密钥的值很多,则可能变得低效,因为每次访问都需要O(n)(其中n是该密钥的值的数量) )顺序搜索该键的值。
如果查找比添加或删除更频繁,则可以对值列表进行排序。插入和删除仍然需要顺序扫描,但查找可以进行二进制搜索。根据应用程序的不同,这是一个很好的折衷方案。
另一种可能性是使该值列表成为另一个二叉搜索树。因此,您的节点将包含值的二叉树。这比排序列表更有效,但会花费更多内存。