确定在恒定时间内两个节点之间是否至少存在一条路径

时间:2014-04-20 07:18:16

标签: algorithm data-structures graph path

在有向图中,是否可以确定在两个预定义节点之间是否存在至少一条恒定时间的路径?如果我使用邻接矩阵数据结构会有用吗?

请告诉我我缺少的东西,我需要学习的东西。如果没有标准算法,你可以为我解释一些解决方案。

2 个答案:

答案 0 :(得分:1)

好吧,如果不进行预处理就无法在恒定时间内完成,您可以通过这些节点之间的最短路径来找到最短路径,如果不存在这样的路径,它可能会衰减到图形的大小。

如果您允许进行预处理,您可以构建强连通组件图(让它为G'),按字典顺序对其进行排序,并添加所有对的指示(v',u')if v'对你来说在G'。

在查询时间,您可以搜索包含v'的{​​{1}}和包含v的{​​{1}}。并检查是否存在从u'u的路径,答案将是相同的。

答案 1 :(得分:0)

如果使用Kruskal's algorithm预处理图形,则随后可以确定两个节点是否在恒定时间内连接。该算法将生成一组或多组连接的节点。同一组中的两个节点通过一个或多个路径连接。不相交集中的节点未连接。

如果您不允许预处理图表,那么答案是"否"。