我有一个任务,给我一个图,我必须使用一个二维数组,并找到从"Macomb“到”芝加哥“的最短路径。我很难弄清楚我应该如何开始。
我看了一些视频,我觉得我已经掌握了Dijkstra的算法是如何工作的,但是把它变成代码让我很痛苦。
我已经为我的图创建了一个邻接矩阵,其中我使用"99“来表示不存在的边,我有一个为前置任务列表创建的数组,还有一个为其余顶点创建的数组。我应该将每个新的添加输出到最优路径,以及每个添加到最优路径的当前成本。最后,它应该看起来像这样:
路径: Macomb
成本:0
路径: Macomb --> Hope
成本:2
路径: Macomb -->希望-->爱
成本:4
路径: Macomb -->希望-->爱-->和平
成本:5
路径: Macomb -->希望-->爱-->和平-->信念
成本:6
路径: Macomb -->希望-->爱-->和平-->信念-->芝加哥
成本: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是代码中的内容,所以答案越简单越好。
谢谢!
发布于 2015-11-13 08:54:50
https://stackoverflow.com/questions/33674886
复制相似问题