【问题标题】:How to show a weighted unidirect graph to a two dimensional array (in matrix form)?如何将加权单向图显示为二维数组(以矩阵形式)?
【发布时间】:2023-03-22 06:30:02
【问题描述】:

大家好,想在这里做一个实验,但我无法理解如何在图形(左)中以三乘三矩阵(G,右)显示节点。我不是在看如何在 java 中打印矩阵。

上面写着:

这里,每个节点 i 和 j 之间的边用一个数字表示 表示边缘权重。在图中,节点之间的边 1 和 3 可以在第 1 行第 3 列看到,其值为 2。

【问题讨论】:

    标签: java graph matrix weighted


    【解决方案1】:

    在这种情况下,节点是矩阵的索引。您必须注意 java 中基于零的索引,因此节点 1 实际上位于 [0,0] 位置等。

    节点 1 和 3 之间的边可以在第 1 行第 3 列看到,值为 2 表示边权重为 2 并且在 [0,2] 中,并且由于图在 [2,0] 中也是无向的。

    请注意,表示无向图的矩阵是转置的。

    【讨论】:

      【解决方案2】:

      每个节点都有一个索引(从 0 开始)。在这种情况下,节点 1 的索引为 0,节点 2 的索引为 1,节点 3 的索引为 2。要找到索引为 i 的节点和索引为 j 的节点之间的权重,请查看 G[i][j] .

      例如,要查找节点 1 和节点 3 之间的权重,请查看矩阵条目 G[0][2],即 2。

      因为它是一个无向图,哪个节点是开始哪个是结束都没有关系,所以矩阵的上半部分和下半部分是一样的。

      【讨论】: