问题描述
Kruskal 算法的要求之一是首先为顶点初始化一个空集,但我遇到了问题。
如果我有一个图形表示
[1,2,4]
[10,3,5]
[6,1,3]
其中第一个索引值是源顶点,第二个值是目标顶点,第三个值是权重,我将如何启动顶点的空集?
我试过类似的东西:
v_set = [0] * 11
但是我将顶点限制为最多 11 个,因此,例如,如果顶点为 12,则会产生索引超出范围的错误。 将不胜感激在这方面的一些帮助。
1楼
您可以将顶点表示为由顶点编号和边列表组成的列表,作为对应于目标顶点和边权重的元组:
您的图表可能如下所示:
[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