【算法定义】
是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪克斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。
【算法图示】
【程序设计】
/*********************************************************************************
*Function: Dijkstra
*Parameter1: 参数1:图的邻接矩阵型
*Parameter2: 参数2:源点编号
*Description: 狄克斯特拉算法,通过参数1传入的矩阵,参数2编号进行定位 ,通过最小生成
树来判断最小路径
*Output: 无
**********************************************************************************/
void Dijkstra(MGraph graph,uint8_t no)
{
int dist[MAXV],path[MAXV];
int arr[MAXV];
int mindis,i,j,u;
for (i=0;i<graph.n;i++)
{
dist[i]=graph.edges[no][i]; /* 距离初始化*/
arr[i]=0; /*arr[]置空*/
if (graph.edges[no][i]<INF) /* 路径初始化*/
{
path[i]=no;
}