Kruskal算法的要求之一是首先为顶点初始化一个空集,但是我遇到了问题。
如果我要用
表示图[1,2,4]
[10,3,5]
[6,1,3]
第一个索引值是源顶点,第二个值是目标顶点,第三个值是权重,我该如何初始化顶点的空集?
我尝试过类似的事情:
v_set = [0] * 11
但是我将顶点限制为最多11个,因此,例如,如果顶点为12,则会产生超出范围误差的索引。希望对此有所帮助。
答案 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