【发布时间】:2018-10-27 04:49:03
【问题描述】:
我想编写一个函数,给定一组顶点,然后在 2 个顶点之间形成一条边,并重复此操作,直到图成为连通图)。如何判断图表何时已连接?
【问题讨论】:
-
我不确定我是否理解这个问题。您能发布到目前为止您尝试过的内容吗?
-
边缘应该是有向的还是无向的?要添加的边数是否限制在一定数量?
-
我们需要更多信息...但是,您可以使用 Dijkstra 算法检查图是否已连接:如果到最后您仍然有一个距离为 +inf 的节点,则它未连接还没有。
-
作为您可以开发的数据结构,您可以使用邻接表向量,通过将节点的对应边添加一个数组来表达节点与其他节点之间的关系。
-
您应该研究“disjoint set”数据结构的变体,它通常用于图论应用程序中,用于跟踪图如何划分为连接的组件。这可以支持比替代方案更有效的算法,具体取决于用于检查节点连通性的图搜索。
标签: java random graph-theory