Floyd算法
来源:互联网 发布:网络盒子全网通 编辑:程序博客网 时间:2024/06/11 08:59
动态规划:
dist[i][j] = min(dist[i][j],dist[i][k]+dist[k][j])
typedef enum{DG,DN,UDG,UDN}GraphKind;typedef int AdjType;typedef char VertexData;typedef struct ArcNode{ AdjType adj;}ArcNode;typedef struct AdjMatrix{ VertexData vertex[MAX_VERTEX_NUM]; ArcNode arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; int vexnum,arcnum; GraphKind kind; AdjMatrix() { for(int i = 0; i < MAX_VERTEX_NUM; i++) { for(int j = 0; j < MAX_VERTEX_NUM; j++) { if( i==j ) arcs[i][j].adj = 0; else arcs[i][j].adj = INFINITY; } } }}AdjMatrix;void shortestPath(AdjMatrix g,int dist[MAX_VERTEX_NUM][MAX_VERTEX_NUM],int path[][20]){ for(int i = 0; i < g.vexnum; i++) { for(int j = 0; j < g.vexnum; j++) { if(i != j) path[i][j] = -1; else path[i][j] = 0; dist[i][j] = g.arcs[i][j].adj; if(i != j && dist[i][j] < INFINITY) { path[i][j] = i; } } } for(int i = 0; i < g.vexnum; i++) { for(int j = 0; j < g.vexnum; j++) { for(int k = 0; k < g.vexnum; k++) { if( dist[k][j] < INFINITY && dist[i][k] < INFINITY && dist[i][j] > dist[i][k]+dist[k][j]) { dist[i][j] = dist[i][k]+dist[k][j]; path[i][j] = k; } } } }}
0 0
- Floyd算法
- Floyd算法
- Floyd算法
- Floyd算法
- Floyd算法
- Floyd算法
- Floyd算法
- Floyd算法
- floyd 算法
- Floyd算法
- floyd算法
- Floyd算法
- Floyd算法
- Floyd算法
- floyd算法
- Floyd算法
- Floyd算法
- Floyd算法
- mysql sql语句大全
- meta——html中磨人的小妖精
- 经常用到的快捷键
- zzulioj-1959-数组最大值【思维】
- SearchRecentsuggestionsProvider
- Floyd算法
- Struts2中文乱码
- sass笔记-3|Sass基础语法之样式复用和保持简洁
- Android数据绑定框架DataBinding,堪称解决界面逻辑的黑科技
- Eclipse中修改SVN用户名和密码方法
- web前端规范
- [转载]3Dmax+blend+WPF综合运用
- 服务熔断
- HTML input-file 上传类型控制