在搜索树中存储重复键的单独值

时间:2017-11-23 21:18:32

标签: java indexing data-structures b-tree

我正在尝试创建一个可以存储重复键的搜索树,并为所述键设置不同的值。

基本上,我有一个位串形式的哈希码。值是位串,键是位串中出现的1的数字。

例如,我可以有两个位字符串:

key1 = 4;
key2 = 4;

所以他们有相同的键:

{{1}}

是否可以将其实现到搜索树中?

2 个答案:

答案 0 :(得分:0)

我无法发表直接评论,但你能不仅拥有一棵树而且还有一张静态地图或其他东西?如果是这样,我认为以下链接会有所帮助。

我看到它的方式,你有一个案例,其中键4可能具有可能的值,那么如何声明像map <Integer, List<String>>这样的地图,下面的链接中描述了其他方法。再次抱歉将此作为答案发布,但我无法发表评论。

如果您真的想将它们存储为单独的密钥,那么我认为第二个链接可能更有用。

HashMap with multiple values under the same key

How to create a HashMap with two keys (Key-Pair, Value)?

答案 1 :(得分:0)

一种可能性是二叉搜索树,其中节点包含与键匹配的值列表。这是对标准二进制搜索树的一个非常简单的补充,但如果密钥的值很多,则可能变得低效,因为每次访问都需要O(n)(其中n是该密钥的值的数量) )顺序搜索该键的值。

如果查找比添加或删除更频繁,则可以对值列表进行排序。插入和删除仍然需要顺序扫描,但查找可以进行二进制搜索。根据应用程序的不同,这是一个很好的折衷方案。

另一种可能性是使该值列表成为另一个二叉搜索树。因此,您的节点将包含值的二叉树。这比排序列表更有效,但会花费更多内存。