博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++的迪杰斯特拉
阅读量:6496 次
发布时间:2019-06-24

本文共 1133 字,大约阅读时间需要 3 分钟。

  hot3.png

/*    Dijkstra(不存在负环回路的情况下)     */#include 
#include 
#include 
#define Inf 0x7fffffff#define MaxV 10000using namespace std;int N,M;int map[MaxV][MaxV];int dist[MaxV];     //记录当前节点最短路径int path[MaxV];     //记录最短路径前一节点bool p[MaxV];void dijkstra(int s){    int i,j,k;    int min;    for(i=0;i<=N;i++)             //初始化非源点信息    {        p[i]=false,dist[i]=map[s][i],path[i]=s;    }    dist[s]=0,path[s]=s,p[s]=true;   //源点信息    for(i=1;i<=N;i++)    {         min=Inf;        k=0;        for(j=1;j<=N;j++)        {            if(!p[j]&&dist[j]
<=N;j++)        {            if(!p[j]&&map[k][j]!=Inf&&dist[j]>dist[k]+map[k][j])            {                dist[j]=dist[k]+map[k][j];                path[j]=k;            }        }    }}void init(){    int from,to,w;    scanf("%d%d",&N,&M);    for(int i=0;i<=N;i++)    for(int j=0;j<=N;j++)    {        if(i==j)    map[i][j]=0;        else        map[i][j]=Inf;    }    for(int i=0;i
<=N;i++)    printf("dist[%d]   =   %d\n",i,dist[i]);    return 0;}

转载于:https://my.oschina.net/MrHou/blog/163691

你可能感兴趣的文章
DOM学习笔记二
查看>>
[Array]189. Rotate Array
查看>>
iuap
查看>>
inkscape
查看>>
关于C语言中单双引号的问题
查看>>
I00003 贝尔三角形
查看>>
HDU1200 POJ2039 ZOJ2208 UVALive3084 To and Fro【密码】
查看>>
CCF201403-1 相反数(100分)
查看>>
表单通过连接数据库数据进行验证
查看>>
redis hash操作 list列表操作
查看>>
利用Hibernate 框架,实现对数据库的增删改查
查看>>
mysql开启远程连接权限
查看>>
关于商米D1S,USB默认权限在关机后丢失的FAQ
查看>>
css3 text-transform变形动画
查看>>
scikit-learn中文api
查看>>
一个完整的大作业--广州市社会保障(市民)卡服务网
查看>>
迭代器和生成器
查看>>
Vue 组件之间传值
查看>>
指向方法之委托(一)
查看>>
2013 Multi-University Training Contest 3 部分解题报告
查看>>