我有点难以理解像这样的二维数组(矩阵)
0.0 1.8 9.1 4.0 3.5
1.8 0.0 8.1 5.2 8.6
9.1 8.1 0.0 2.9 8.1
4.0 5.2 2.9 0.0 2.0
3.5 8.6 8.1 2.0 0.0
应该代表一个图表。值表示权重,但表示节点和边缘的值。我正试图蛮力找到所有可能的树(我不是在寻求帮助,只是试图理解这应该如何代表这个
答案 0 :(得分:1)
2D数组(=矩阵)是表示图形的常用方法。它也被称为Adjacency Matrix。
在图论中,邻接矩阵是正方形 矩阵用于表示有限图。矩阵的元素 指示图中的顶点对是否相邻。
M
的矩阵NxN
表示带有N
个顶点(节点)的图形。
当M[i][j] = 0
顶点i
和j
之间没有边缘时
当M[i][j] = 1
顶点i
和j
之间存在边缘时。
有时,使用与1
不同的数字来表示此特定边的权重(与您的情况相同)很容易。
答案 1 :(得分:1)
如果您有一个包含5个顶点的(加权,无向)图形,请将它们称为v1
,v2
,v3
,v4
,v5
---图表可以用矩阵表示。
v1 v2 v3 v4 v5
v1 0.0 1.8 9.1 4.0 3.5
v2 1.8 0.0 8.1 5.2 8.6
v3 9.1 8.1 0.0 2.9 8.1
v4 4.0 5.2 2.9 0.0 2.0
v5 3.5 8.6 8.1 2.0 0.0
(v2, v4)
中的数字表示连接v2
和v4
且权重为5.2
的边缘。零条目可以表示非边缘,或者具有零权重的边缘。非加权图通常在每个条目中用布尔值表示,1
表示边,0
表示无边。如果矩阵是对称的,那么图是(好的,可以是)无向的。
注意:你问题中的图片不能用给定的矩阵表示:矩阵代表一个有5个顶点的图形,图片代表的图形有8个顶点。