【问题标题】:how to input this for Dijkstra algorithm question如何为 Dijkstra 算法问题输入这个
【发布时间】:2020-06-15 10:50:56
【问题描述】:

我有一个关于 Dijkstra 算法的作业,但这个问题让我对输入感到困惑。它要求我找到最短路径和第二最短路径,我已经弄清楚了那部分,但我什至如何从图表开始让我很困扰。 问题是必须从文件中读取输入,并且该文件包含节点数和两个节点之间的权重。两个节点之间的权重应该是 1 到 9,并且可以使用 0 表示不存在的路径。 现在我的问题是文件的内容是什么?我能够理解 Dijkstra 的算法,其中输入是表示图形的二维数组。有人可以澄清这个问题的预期吗?就像源文件应该包含的内容一样。

【问题讨论】:

  • 我认为输入格式应该在作业中定义,如何表示图形有很多方法..
  • @Ecto 输入是从文件中读取的,包含节点数和两个节点之间的权重。两个节点之间的权重应该在 1 到 9 之间。您可以使用 0 表示不存在的路径。这就是作业对输入格式的说明。就是这样。
  • 您自己创建文件吗?
  • @Ecto 是的........
  • @wakanada 您可以将加权图表示为矩阵,其中条目(i,j) 是节点ij 之间的权重。当它是一个无向图时,它是一个对称矩阵。如果没有从ij 的路径,则使用 0。

标签: algorithm graph-algorithm dijkstra


【解决方案1】:

您可能应该像这样创建文件: (示例 - 有很多方法可以做到)

4   # number of nodes (from 1 to 4)
1 2 3   # means edge from node 1 to node 2 with weight 3
2 3 1   # means edge from node 2 to node 3 with weight 1
...

这将对应于这样的二维矩阵:

0 3 0 0
0 0 1 0
0 0 0 0
0 0 0 0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多