当前位置:  开发笔记 > 编程语言 > 正文

关系的数据结构

如何解决《关系的数据结构》经验,为你挑选了1个好方法。

我正在将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

由于可能存在多条路径,因此会返回最少量的关系,但需要注意关系优先级.如果关系具有更高的优先级,则将添加该关系,并且将从那里添加其余关系.我正在考虑使用Disjoint-set数据结构,但我不确定.

有任何想法吗?

更多信息 -

值的数量通常小于100且关系小于500.集合是静态的,并且将一次又一次地使用算法来查找路径.另外,我没有问这个问题,但是Disjoint-set数据结构中的算法是否最有效?



1> 小智..:

听起来你有一个图表.这是一个带有节点和边缘的结构.有许多处理Graphs的库和工具.微软甚至发表了一篇关于如何处理它们的论文.我认为图表很棒,在很多情况下非常有用.

图形的一大好处是能够为节点之间的边缘分配优先级.然后当你想找到两个节点之间的路径时,图形可以选择具有理想优先级的路径.

在您的情况下,您的值是节点,您的关系是边缘.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有