Dijkstra算法解决的是单源最短路径问题:对于给定的有向网络G=(V,E)及单个源点v,求从v到G的其余各顶点的最短路径。
本文以下面的有向网络(用邻接矩阵存储)为例,并假设源点为1。
#include<stdio.h>
#define maxsize 1000 //表示两点间不可达,距离为无穷远
#define n 7 //结点的数目
void dijkstra(int C[][n],int v);//求原点v到其余顶点的最短路径及其长度void main()
{printf(" ——Dijkstra算法——\n");int C[n][n]={{maxsize,13,8,maxsize,30,maxsize,32},{maxsize,maxsize,maxsize,maxsize,maxsize,9,7},{maxsize,maxsize,maxsize,5,maxsize,maxsize,maxsize},{maxsize,maxsize,maxsize,maxsize,6,maxsize,