我在算法和数学方面有一个合理的(虽然生疏)背景,并且在Python和C方面有一定的熟练程度。我可以看到sorta如何做到这一点,但这是非常重要的,每次我原型时都会变得更复杂它。我来到集体面前,因为它的智慧希望找到一个我没有看到的优雅解决方案。我认为某些网络或图形变体可能是适合的,但它不是点击。这不是家庭作业: - )。
我有三组数据,A,B& C. A中的每个元素都是一个字符串,B中的每个元素都是一个int,每个C都是元数据的集合(日期,时间,描述等)。每组中可能会有成千上万的元素(尽管不是很快)。
每个A将映射到B中的零个或多个项目。相反,B中的每个元素将映射到A中的零个或多个项目.A和B中的每个项目都将具有可能共享的关联C(可能为空)与其他A和/或B一起。
鉴于A,我需要报告它映射到的所有B。然后,我需要报告那些B映射到的所有A,以及与找到的所有C相关的所有A.我还需要能够进行逆向(给定B,报告关联A,B和C)。
我知道这里有一些相当的病态可能性,我需要检测循环(深度检测应该可以正常工作)等。
思想?
答案 0 :(得分:0)
我首先想到的是Graph或Directed Graph
数据集中的每个元素都可以是一个节点,边缘将代表映射。你可以编写你的特定实现来为你知道你需要做的事情提供帮助方法,例如获取给定A元素映射到的所有B
更新:我没有注意到你已经标记了问题图 - 算法,我认为这意味着你已经想到了图形数据结构