迪杰斯特拉Dijkstra算法C++实现 您所在的位置:网站首页 图的迪杰斯特拉算法 迪杰斯特拉Dijkstra算法C++实现

迪杰斯特拉Dijkstra算法C++实现

2024-07-17 02:43| 来源: 网络整理| 查看: 265

迪杰斯特拉Dijkstra算法C++实现

dasdsadddd: [code=cpp] for (int i = 0; i < this->vexnum; i++) {//返回地找 ArcType mind = MAX; int v = i; for (int j = 0; j < this->vexnum; j++) {//一个劲地往前走 //(移出for)int v = i; if (!solved[j] && dist[j] < mind) { mind = dist[j]; v = j; } } solved[v] = true; int w = this->firstadj(v); while (w != -1) { k++; if (dist[v] + this->arcs[v][w] < dist[w]) { dist[w] = dist[v] + this->arcs[v][w]; path[w] = path[v]; path[w].push(vexs[w]); } w = this->nextadj(v, w); } } [/code] 不应该把while循环嵌套进第二个for循环,而是找到当前最短路径后再进行,您这样虽然结果是对的,但是进行了很多无用while表情包



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有