我正在将 VB6 转换为 C#,并且希望使保存值和关系的数据结构更加高效。在 VB 中,我有一个值的集合以及这些值之间的关系的另一个集合以及这些关系的优先级。我还有一个算法,当一组值传递给它时,将返回将这些值连接在一起所需的所有关系。例如,假设值集合包含 1-10,关系集合包含
1,2
3,2
5,2
2,8
8,10
9,10
如果输入是 1,9,10,返回的关系将是——
1,2
2,8
8,10
9,10
由于可能有多个路径,因此将返回最少量的关系,但需要注意关系优先级。如果某个关系具有更高的优先级,则将添加该关系,并从那里添加其余的关系。我正在考虑使用不相交集数据结构但我不确定。
有任何想法吗?
更多信息 -
值的数量通常少于 100 个,关系少于 500 个。集合是静态的,并且将一次又一次地使用算法来查找路径。另外,我没有问这个,但算法会不相交集数据结构是最有效率的?
听起来你拥有的是Graph。这是一个具有节点和边的结构。有很多很多图书馆以及处理图表的工具。微软甚至还发表了一篇关于如何处理它们的论文。我认为图表很棒,在很多情况下都非常有用。
图的一大好处是能够为节点之间的边分配优先级。然后当你想找到两个节点之间的路径时,boom,图可以选择具有理想优先级的路径。
在你的情况下,你的价值观是节点,你的关系是边缘。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)