第十三周项目4每对顶点之间的最短路径
来源:互联网 发布:浙江诸暨淘宝司法拍卖 编辑:程序博客网 时间:2024/05/24 04:54
- /*
- Copyright (c)2016,烟台大学计算机与控制工程学院
- All rights reserved.
- 文件名称:图(2).cpp
- 作 者: 陈朋
- 完成日期:2016年12月2日
- 版 本 号:v1.0
- 问题描述:
- 输入描述:无
- 程序输出:若干
- */
- #include <stdio.h>
- #include <malloc.h>
- #include "graph.h"
- #define MaxSize 100
- void Ppath(int path[][MAXV],int i,int j) //前向递归查找路径上的顶点
- {
- int k;
- k=path[i][j];
- if (k==-1) return; //找到了起点则返回
- Ppath(path,i,k); //找顶点i的前一个顶点k
- printf("%d,",k);
- Ppath(path,k,j); //找顶点k的前一个顶点j
- }
- void Dispath(int A[][MAXV],int path[][MAXV],int n)
- {
- int i,j;
- for (i=0; i<n; i++)
- for (j=0; j<n; j++)
- {
- if (A[i][j]==INF)
- {
- if (i!=j)
- printf("从%d到%d没有路径\n",i,j);
- }
- else
- {
- printf(" 从%d到%d=>路径长度:%d 路径:",i,j,A[i][j]);
- printf("%d,",i); //输出路径上的起点
- Ppath(path,i,j); //输出路径上的中间点
- printf("%d\n",j); //输出路径上的终点
- }
- }
- }
- void Floyd(MGraph g)
- {
- int A[MAXV][MAXV],path[MAXV][MAXV];
- int i,j,k;
- for (i=0; i<g.n; i++)
- for (j=0; j<g.n; j++)
- {
- A[i][j]=g.edges[i][j];
- path[i][j]=-1;
- }
- for (k=0; k<g.n; k++)
- {
- for (i=0; i<g.n; i++)
- for (j=0; j<g.n; j++)
- if (A[i][j]>A[i][k]+A[k][j])
- {
- A[i][j]=A[i][k]+A[k][j];
- path[i][j]=k;
- }
- }
- Dispath(A,path,g.n); //输出最短路径
- }
- int main()
- {
- MGraph g;
- int A[4][4]=
- {
- {0, 5,INF,7},
- {INF,0, 4,2},
- {3, 3, 0,2},
- {INF,INF,1,0}
- };
- ArrayToMat(A[0], 4, g);
- Floyd(g);
- return 0;
- }
0 0
- 第十三周项目4每对顶点之间的最短路径
- 第十三周项目4每对顶点之间的最短路径
- 第十三周--每对顶点之间的最短路径
- 第十三周 项目四 每对顶点之间的最短路径
- 项目4 -- 每对顶点之间的最短路径
- 第十三周 每对顶点之间的最短路径(Floyd算法)
- 第十二周项目4--每对顶点之间的最短路径
- 第十二周——项目一—最短路径(4)Floyd算法验证(每对顶点之间的最短路径)
- 每对顶点之间的最短路径-Floyd
- 每对顶点之间的最短路径
- 【动态规划】每对顶点之间的最短路径之Floyd-Warshall算法
- 【算法导论】每对顶点之间的最短路径算法
- 数据结构例程——每对顶点之间的最短路径
- 图——每对顶点之间的最短路径 ——弗洛伊德算法
- 每对顶点间的最短路径之一
- 每对顶点间的最短路径之一 收藏
- 每对顶点间的最短路径C++实现
- 每对顶点的最短路径 : 基本算法
- 数据库原理实验实验四 oracle的安全性和完整性控制
- 第十四周 项目3 - 是否二叉排序树?
- mysql之索引篇
- 搜索专题(DFS)HDU 1016-Prime Ring Problem
- Android逆向之旅---动态方式破解apk终极篇(加固apk破解方式)
- 第十三周项目4每对顶点之间的最短路径
- servlet学习笔记1
- 第十四周项目2-二叉树排序树中查找的路径
- linux grep命令详解
- django 环境搭建
- MyBatis批量更新
- maven安装配置
- centos 7 32位下载地址
- android怎么获得,api的debug签名