贪心算法--最短路径问题

    思考一个问题,在一个含权有向图中,顶点1为源点(可以到达图中任意点,但图中任意点都不能到达此点),想办法求出顶点1到图中所有点的最短路仅(只求处路径长度).

贪心算法--最短路径问题_第1张图片贪心算法--最短路径问题_第2张图片贪心算法--最短路径问题_第3张图片贪心算法--最短路径问题_第4张图片

思路如上面截图所示:代码如下

贪心算法--最短路径问题_第5张图片

贪心算法--最短路径问题_第6张图片

#include 
#define M 7
#define INFINITY 9999999
int findMin(int *lamda,int *Y); 
void DIJKSTRA(int g[][M],int lamda[M]);
void printWay(int point,int current);
int way[M]={0};
int main(void)
{
	int g[M][M]={0},lamda[M]={0},i=0,j=0;
	for(i=0;i",1);
		if(current==1) printf("%d",1);
		return;
	}
	else
	{
		printWay(way[point],current);
		if(point!=current)
			printf(" %d ->",point);
		else 
			printf(" %d",point);
	}
}

你可能感兴趣的:(算法设计技巧与分析——案例编写)