如何读取此图输入并放入邻接矩阵?

0 投票
1 回答
1049 浏览
提问于 2025-04-18 17:40

我有点困惑,想弄明白怎么把这个图的数据放进一个邻接矩阵里。

这是从一个文本文件里得到的一些示例输入:

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编程。

谢谢!

1 个回答

0

这个过程其实很简单,

对于输入的 x x1,y1 x2,y2 来说,

它的意思是:

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

要解析这个数据,可以这样做:

1: 用空格来分隔数据集。
2: 结果数组中的第一个元素就是你的节点 x。
3: 对于 i 从 1 到 n,使用逗号(,)来分割,这样会得到一个包含两个元素的数组,第一个元素是节点 x1,第二个元素是距离 y1。
4: 对于每一对节点,设置矩阵的值,mat[x,x1]=y1。

补充一下,
看起来你的图是一个无向图。所以对于每一对节点,你还需要做:

mat[x,x1]=y1
mat[x1,x]=y1。

撰写回答