生成两个节点之间的边数

时间:2012-02-22 04:27:07

标签: algorithm graph graph-algorithm minimum-spanning-tree kruskals-algorithm

我使用Kruskal算法生成了这个最小生成树,我很难在两个节点之间生成路径。有人可以用伪代码帮我吗?我尝试使用Adjacency List和Adjaceny矩阵

Loc1 |  Loc2 |  Distance
  02 |   10  |    2.00 Km
  05 |   07  |    5.39 Km
  02 |   09  |    5.83 Km
  04 |   05  |    5.83 Km
  06 |   08  |    5.83 Km
  03 |   09  |    7.07 Km
  01 |   04  |    11.18 Km
  07 |   09  |    11.18 Km
  07 |   08  |    15.81 Km
Total Weight = 70.12 Km
----------------------------------------------------

2 个答案:

答案 0 :(得分:1)

如果您只想要两个节点之间的任何路径,Breadth First Search会这样做,并且会生成最短路径(因为它是最小生成树)。

答案 1 :(得分:0)

根据定义,生成树没有循环(或循环),因此最多只能在两个节点之间有一条路径(即不是“路径”,复数)。

也许我不理解这个问题。您是否试图找到树中两个给定节点的连接方式?

如果是这样的话,对我来说就像是最简单的蛮力,你可能会沿着它可能的边缘从一个点跟随,也许是从堆栈中推出和弹出可能性,这将是最坏的情况O(边缘)运行时间,与Kruskal的算法相比,这将是微不足道的。 你需要更快的东西吗?