如何读取此图输入并放入邻接矩阵?
我有点困惑,想弄明白怎么把这个图的数据放进一个邻接矩阵里。
这是从一个文本文件里得到的一些示例输入:
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。