在C++中对Dijkstra算法进行编程
Programming Dijkstra's algorithm in C++
我有一个赋值,其中给我一个图,必须使用二维数组,并找到从"Macomb"到"Chicago"的最短路径。我很难弄清楚该怎么开始。
我看了一些视频,我觉得我掌握了Dijkstra的算法是如何工作的,但把它变成代码让我很难过。
我已经为我的图创建了一个邻接矩阵,其中我使用"99"来表示不存在的边,我为一系列前置创建了数组,为其余顶点创建了数组。我应该输出最优路径的每一个新添加,以及最优路径的每个添加的当前成本。最后,它应该是这样的:
路径:马孔布
成本:0
路径:马孔布-->希望
成本:2
路径:马孔布-->希望-->爱
成本:4
路径:马孔布-->希望-->爱-->和平
成本:5
路径:马孔布-->希望-->爱-->和平-->信仰
成本: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是代码中的内容,所以答案越不复杂越好。
谢谢!
下面是我对Dijkstra算法的实现。
https://github.com/Jesusfer2575/Reference/blob/master/dijkstra.cpp
尽情享受吧!
相关文章:
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 基于ELO的团队匹配算法
- C++选择排序算法中的逻辑错误
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- C++A*算法并不总是在路径中具有目标节点
- 排序算法c++
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 了解算法的性能差异(如果以不同的编程语言实现)
- 编程作业:机器人遗传算法
- 以C++元编程风格实现 RLE 算法
- 用于优化存储/运行时算法的元编程,C++
- 算法输出正确答案,但编程挑战给了我错误的答案
- 基于定点算法的编译时元编程.乘法溢出
- 在C++中对Dijkstra算法进行编程
- 在编程中,这两项任务中的任何一项都有算法方法吗
- 为编程难题提出算法建议
- 为a*算法编程一个启发式函数
- 这是最大子数组和算法的动态编程版本的工作方式吗?