【发布时间】:2015-11-12 15:19:40
【问题描述】:
我有一个任务,给我一个图表,并且必须使用一个二维数组并找到从“Macomb”到“Chicago”的最短路径。我很难弄清楚我应该如何开始。
我看了一些视频,我觉得我已经掌握了 Dijkstra 算法的工作原理,但是把它变成代码让我很难过。
我为我的图创建了一个邻接矩阵,其中我使用“99”来表示不存在的边,我为前辈列表创建了一个数组,并为剩余的顶点创建了一个数组。我应该将每个新添加输出到最佳路径,以及每个添加到最佳路径的当前成本。最后应该是这样的:
路径:马科姆
费用:0
路径:Macomb --> 希望
费用:2
路径:Macomb --> 希望 --> 爱
费用:4
路径:马科姆 --> 希望 --> 爱 --> 和平
费用:5
路径:Macomb --> 希望 --> 爱 --> 和平 --> 信仰
费用:6
路径:马科姆 --> 希望 --> 爱 --> 和平 --> 信仰 --> 芝加哥
费用:8
这是我必须开始的代码:
#include <iostream>
using namespace std;
int main()
{
int graph[6][6] = {{99,2,9,5,99,99},
{2,99,4,2,99,99},
{9,4,99,1,1,5},
{5,2,1,99,4,99},
{99,99,1,4,99,2},
{99,99,99,99,2,99}};
string pred[6] = {"Macomb", " ", " ", " ", " ", " "};
string cities[5] = {"hope", "peace", "love", "belief", "Chicago"};
int distance[6];
}
我不是在找人来编写我的作业,但我希望能朝着正确的方向努力,因为这是一项艰巨的任务。这是一个基本的数据结构类,我们一直在使用的唯一#include 是代码中的内容,因此答案越简单越好。
谢谢!
【问题讨论】:
-
this 也是一个很好的解释,带有一些代码。