相关疑难解决方法(0)

部分多键映射的数据结构?

我有数据由映射到值的键组成,如下所示:

---------------------
Key          | Value
---------------------
(0, 0, 0, 0) | a
(0, 0, 0, 1) | b
(0, 1, 0, 1) | c
(0, 1, 1, 0) | d
....
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种数据结构,可以通过密钥有效地执行搜索查询,其中查询可以是完整的或部分地指定密钥.例如:

(0, 0, 0, 1) -> a
(0, *, *, *) -> [a, b, c, d]
(0, 1, *, *) -> [c, d]
Run Code Online (Sandbox Code Playgroud)

我现在的想法是使用常规树来实现它,类似于: 树 叶节点表示值,非叶节点是键的一部分(即,w,x,y和z节点分别是键的第一,第二,第三和第四部分).可以使用简单的BFS算法来回答任何查询.但问题是这棵树随着密钥的每个新部分呈指数级增长.

什么数据结构/算法更适合解决这个问题?请注意,关键部分可以是数字或字符串.

algorithm data-structures

6
推荐指数
1
解决办法
1038
查看次数

标签 统计

algorithm ×1

data-structures ×1