在有向图中添加权重的算法(使用邻接矩阵)
Algorithm to add weights in a directed graph (using adjacency matrix)
我为我在 Paint 中制作的糟糕图表道歉。
无论如何,我很难想出一个单一的方法来添加图表中的权重。
任何人都可以提供(使用伪代码)一些关于如何解决这个问题的见解。我考虑过使用方法重载,但它不适用于所有情况。我完全卡住了。请记住,我使用的是邻接矩阵而不是列表。谢谢!
示例:
从节点 1 到节点 2 再到节点 3 的距离 = 6
节点 1 到节点 2 到节点 3 到节点 4 的距离 = 8
从节点 1 到节点 2 到节点 3 到节点 4 到节点 2 到节点 3 的距离 = 18
让我们为您提供的这张图取邻接矩阵,它看起来像这样
让 INF 成为一个不存在的 link.
1 2 3 4
1 INF 3 INF 3
2 INF INF 3 INF
3 INF INF INF 2
4 INF 7 INF INF
这存储了关于图的所有相关信息,并提供了一些极其简单的算法。要获得从节点 x 到 y 的特定边的权重,只需取 AdjacencyMatrix[x][y]
。要么是权重,要么 INF
表示不存在 link。
到那时,求和一条路径的权重就非常简单了。
我为我在 Paint 中制作的糟糕图表道歉。
无论如何,我很难想出一个单一的方法来添加图表中的权重。
任何人都可以提供(使用伪代码)一些关于如何解决这个问题的见解。我考虑过使用方法重载,但它不适用于所有情况。我完全卡住了。请记住,我使用的是邻接矩阵而不是列表。谢谢!
示例:
从节点 1 到节点 2 再到节点 3 的距离 = 6
节点 1 到节点 2 到节点 3 到节点 4 的距离 = 8
从节点 1 到节点 2 到节点 3 到节点 4 到节点 2 到节点 3 的距离 = 18
让我们为您提供的这张图取邻接矩阵,它看起来像这样 让 INF 成为一个不存在的 link.
1 2 3 4
1 INF 3 INF 3
2 INF INF 3 INF
3 INF INF INF 2
4 INF 7 INF INF
这存储了关于图的所有相关信息,并提供了一些极其简单的算法。要获得从节点 x 到 y 的特定边的权重,只需取 AdjacencyMatrix[x][y]
。要么是权重,要么 INF
表示不存在 link。
到那时,求和一条路径的权重就非常简单了。