初始化空集的Kruskal算法

时间:2018-09-23 00:14:57

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

Kruskal算法的要求之一是首先为顶点初始化一个空集,但是我遇到了问题。

如果我要用

表示图
[1,2,4]
[10,3,5]
[6,1,3]

第一个索引值是源顶点,第二个值是目标顶点,第三个值是权重,我该如何初始化顶点的空集?

我尝试过类似的事情:

v_set = [0] * 11

但是我将顶点限制为最多11个,因此,例如,如果顶点为12,则会产生超出范围误差的索引。希望对此有所帮助。

1 个答案:

答案 0 :(得分:0)

您可以将顶点表示为由顶点编号组成的列表以及边的列表,以及与目标顶点和边的权重相对应的元组:

您的图可能看起来像这样:

[1, [(2, 14), (3, 10)]]
[2, [(1, 14), (4, 2)]]
[3, [(1, 10)]]
[4, [(2, 2)]]

其中:

       edge
      -----
[3, [(1, 10)]]
 ^    ^   ^ weight
 |    destination vertice   
 Vertice number