急问:谁有Djistra的最短路由路径算法程序啊

fanz2000 2002-05-16 11:16:16
thanks
...全文
58 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanz2000 2002-05-17
  • 打赏
  • 举报
回复
thanks very much
starfish 2002-05-16
  • 打赏
  • 举报
回复
#define infinity 1000000 // a big int
#define max_vertexes 50 // the max count of vertexes

typedef int Graph[max_vertexes][max_vertexes]; // use adjacent matrix to represent graph



/*===============================================

单源最短路径

Dijkstra 算法

适用条件:所有边的权非负

!!注意:
1.输入的图的权必须非负
2.顶点标号从0开始
3.当i,j不相邻时G[i,j]=infinity

================================================*/
int Dijkstra(Graph G,int n,int s,int t, int path[])
{
int i,j,w,minc, d[max_vertexes], mark[max_vertexes];
for (i=0; i<n; i++) mark[i]=0;

for (i=0; i<n; i++)
{
d[i]=G[s][i];
path[i]=s;
}

mark[s]=1; path[s]=0; d[s]=0;

for(i=1; i<n; i++)
{
minc = infinity;
w = 0;
for( j = 0; j < n; j++ )
if( ( mark[j]==0 ) && ( minc >= d[j] ) ) {
minc=d[j];w=j;
}
mark[w]=1;
for(j=0; j<n; j++)
if( (mark[j]==0) && ( G[w][j] != infinity ) && ( d[j] > d[w]+G[w][j] ) )
{
d[j]=d[w]+G[w][j];
path[j]=w;
}
}
return d[t];
}

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧