将Dijkstra算法用C语言实现为图的最短路径计算工具
发布时间
阅读量:
阅读量
Dijkstra算法基于动态规划的原理,其核心思想是按照路径长度由小到大的顺序逐步生成最短路径。
该算法中涉及三个关键数组,其中final[w]用于标识下标为w的节点是否已经确定了最短路径,当其值为1时,表示该节点的最短路径已计算完成。
D[w]则记录了下标为w的节点对应的最短路径的权重总和。
P[w]用于存储下标为w的节点在最短路径中的前驱节点的索引信息。
当算法执行完毕后,通过返回D和P两个数组,即可获取从起始节点v0到图中任意节点的最短路径序列及其对应的距离值。
在实现过程中,所采用的数据结构为图的邻接矩阵形式。
上述代码已在DEV C++环境中成功运行并通过验证。
#include <stdio.h>
#define INFINITY 65535
typedef int VertexType; //顶点是字符型
typedef int EdgeType; //边是整型
typedef struct //图的邻接矩阵存储结构
{
VertexType vexs[9]; //顶点向量
全部评论 (0)
还没有任何评论哟~
