博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于邻接矩阵的Dijstra算法-输出路径
阅读量:4609 次
发布时间:2019-06-09

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

//基于邻接矩阵的Dijstra算法-输出路径  1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 7 int n,m; 8 int map[1009][1009]; 9 int path[1009];10 int dis[1009];11 bool used[1009];12 const int maxint=999999999;13 14 void dijk()15 {16 memset(path,-1,sizeof(path));17 memset(used,0,sizeof(used));18 int i,j,k;19 used[1]=1;20 21 for(i=1;i<=n;i++)22 dis[i]=map[1][i];23 24 for(i=1;i
dis[j])30 {31 tmin=dis[j];k=j;32 }33 }34 35 used[k]=1;36 for(j=1;j<=n;j++)37 {38 if(used[j]==0)39 {40 if(dis[k]+map[k][j]
ss;50 ss.push(n);51 i=n;52 while(path[i]!=-1)53 {54 i=path[i];55 ss.push(i);56 }57 if(dis[n]==maxint)58 {59 printf("-1\n");60 return ;61 }62 ss.push(1);63 printf("%d\n",dis[n]+1);64 65 while(!ss.empty())66 {67 printf("%d\n",ss.top());68 ss.pop();69 }70 }71 72 int main()73 {74 while(scanf("%d%d",&m,&n)!=EOF)75 {76 int i,j;77 for(i=1;i<=n;i++)78 {79 for(j=1;j<=n;j++)80 map[i][j]=maxint;81 }82 83 int a,b;84 for(i=1;i<=m;i++)85 {86 scanf("%d%d",&a,&b);87 map[a][b]=1;88 }89 90 dijk();91 }92 }

 

转载于:https://www.cnblogs.com/myacm/archive/2012/08/09/2629732.html

你可能感兴趣的文章
eclipse 找不到 tomcat 的解决方案
查看>>
HDU 1890--Robotic Sort(Splay Tree)
查看>>
connection string for Excel/Access 2010
查看>>
【转】【Python】Python中的__init__.py与模块导入(from import 找不到模块的问题)
查看>>
学习wavenet_vocoder之环境配置
查看>>
常用Maven命令
查看>>
Docker启动mysql的坑2
查看>>
JS中的对象数组
查看>>
j2ee爬坑行之二 servlet
查看>>
JAVA基础入门(JDK、eclipse下载安装)
查看>>
最基础的applet运用--在applet上画线
查看>>
布局大全
查看>>
eclipse中安装tomcat插件
查看>>
常见设计模式C++代码实现
查看>>
C++线程同步的四种方式(Windows)
查看>>
前端面试集锦(1)
查看>>
What are Upgrade, Product and Package Codes used for? By pusu
查看>>
【转】梯度下降算法以及其Python实现
查看>>
H5的本地存储
查看>>
1035 Password (20 分)
查看>>