0

我很困惑,并试图弄清楚如何将此图形数据放入邻接矩阵中。

这是来自文本文件的一些示例输入:

0 1,28 3,33
1 2,10 4,44
2 3,50
3 4,30
4 

这就是矩阵的外观

  0   1   2   3   4
0 INF 28  INF 33  INF
1 28  INF 10  INF 44 
2 INF 10  INF 50  INF 
3 33  INF 50  30  INF  
4 INF 44  INF INF INF

这将是某种多维数组,但我不知道如何将输入转换为一个。任何帮助,将不胜感激。

我在 python 中工作。

谢谢!

4

1 回答 1

0

这很简单,

对于 x x1,y1 x2,y2 输入

代表着

在 x 和 x1 之间有一条边,值为 y1,边 x 和 x2 的值为 y2。

要解析它,请执行此操作

1:使用空格分隔符分割数据集。
2:结果数组中的第一个元素是您的节点(x)。
3:对于i(1到n),用逗号(,)进行分割,这将给出一个包含两个元素的数组,第一个元素是节点(x1),第二个元素是距离y(1)。
4:为每对设置矩阵中的值,mat[x,x1]=y1

编辑看来您的图表是无向图。所以对于每一对,你必须做

垫子[x,x1]=y1
垫子[x1,x]=y1

于 2014-08-18T16:32:58.840 回答