#include<stdio.h>
int A[20][20];
int Path[20][20];
int MGraph[20][20];
int n;
int k,l;
void printPath(int u,int v)
{
if(Path[u][v]==-1)
{
printf(“输出路径\n”);
printf("%d %d\n",u,v);
}
else
{
int mid=Path[u][v];
printPath(u,mid);
printPath(mid,v);
}
}
void Floyd(int n)
{
int i,j,v;
int A[n][n];
for(i=0;i<n;++i)
{
for(j=0;j<n;++j)
{
A[i][j]=MGraph[i][j];
Path[i][j]=-1;
}
}
for(v=0;v<n;++v)
{
for(i=0;i<n;++i)
{
for(j=0;j<n;++j)
{
if(A[i][j]>A[i][v]+A[v][j])
{
A[i][j]=A[i][v]+A[v][j];
Path[i][j]=v;
}
}
}
}
printf(“矩形数组的中间节点为:\n”);
for(i=0;i<n;++i)
{
for(j=0;j<n;++j)
{
printf("%d “,Path[i][j]);
}
printf(”\n");
}

}
int main()
{
int q;
int a,b,c;
printf(“输入几组数据\n”);
scanf("%d",&q);
printf(“分别是:\n”);
for(int i=1;i<=q;i++)
{
scanf("%d%d%d",&a,&b,&c);
MGraph[a][b]=c;
}
printf(“矩形数组大小\n”);
scanf("%d",&n);
printf(“矩形数组为:\n”);
for(int i=0;i<n;++i)
{
for(int j=0;j<n;++j)
{
printf("%d “,MGraph[i][j]);
}
printf(”\n");
}
Floyd(n);
printf(“输入查询路径\n”);
scanf("%d%d",&k,&l);
printPath(k,l);

}

floyd算法最短路径相关推荐

  1. 【数据结构笔记24】单源最短路(迪克斯拉Dijkstra算法),多源最短路(弗洛伊德Floyd算法)

    本次笔记内容: 7.1.1 概述 7.1.2 无权图的单源最短路 7.1.3 有权图的单源最短路 7.1.3-s 有权图的单源最短路示例 7.1.4 多源最短路算法 文章目录 最短路径问题 最短路径问 ...

  2. 数据结构与算法(7-4)最短路径(迪杰斯特拉(Dijkstra)算法、弗洛伊德(Floyd)算法)

    目录 一.最短路径概念 二.迪杰斯特拉(Dijkstra)算法(单源最短路径) 1.原理 2.过程 3.代码 三.弗洛伊德(Floyd)算法(多源最短路径) 1.原理 2.存储 3.遍历 4.代码 参 ...

  3. 图的单源最短路径,Floyd算法(数据结构c++)

    这个算法结构很是简单,但是理解还是有一定的困难,一开始做的时候想不明白,跟着算法自己动手画画就知道这个算法具体是怎么回事了. 时间复杂度是O(N*3) 算法有点动态规划的意思,有两个数组,一个(dis ...

  4. floyd算法_最短路径的算法:Floyd算法

    点击箭头处"蓝色字",关注我们哦!! 算法 最短路径的算法-Floyd算法 ● ○ ● Shortest Path Algorithm - Floyd Algorithm ● ○ ...

  5. 最短路径—Dijkstra算法和Floyd算法

    Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Di ...

  6. 最短路径-Dijkstra算法与Floyd算法

    最短路径-Dijkstra算法与Floyd算法 原文:https://www.cnblogs.com/smile233/p/8303673.html 一.最短路径 ①在非网图中,最短路径是指两顶点之间 ...

  7. 最短路径算法——Dijkstra and Floyd算法

    一.     前言:     这个古老的算法应该耳熟能详了吧,但是我自从从学校出来到现在,最短路径算法都没有实际运用过,最近在一个GIS项目中总算用到了,于是乎把教材重温了下,同时查阅了网上很多的资料 ...

  8. 最短路径(Floyd算法)(c/c++)

    如果要得到图中各个顶点之间的最短路径,方法1:可以对每一个顶点采用Dijkstra算法:方法2:可以采用Floyd算法,它是一种用来求双源点之间最短路径的算法,采用邻接矩阵来存储图 辅助结构 int ...

  9. 短小精悍的多源最短路径算法—Floyd算法

    前言 在图论中,在寻路最短路径中除了Dijkstra算法以外,还有Floyd算法也是非常经典,然而两种算法还是有区别的,Floyd主要计算多源最短路径. 在单源正权值最短路径,我们会用Dijkstra ...

最新文章

  1. 程序员的杂想-不要只做一名程序员
  2. 【FJOI2015】最小覆盖双圆问题
  3. performance and scalability
  4. mxnet基础到提高(38)-自动梯度计算
  5. 批量获取域名解析地址socketthread
  6. [html] 举例说明html的修饰元素有哪些?
  7. 【算法大赛直播周】大赛评委分享广告技术干货,精彩不容错过!
  8. jq使用教程08_基于估值波动周期的择时策略
  9. 数据预处理—8.属性归约之主成分分析(理论及python实现)
  10. 短视频直播app源码——软件系统开发方案
  11. 数据库中间件sharding-jdbc实现数据脱敏
  12. 计算机信息检索 02139
  13. 2020第十一届11月蓝桥杯大赛软件类B组C/C++省赛题解
  14. 逻辑思维训练和推理思维训练
  15. 微信公众平台js算法逆向
  16. matlab 截屏为什么没有呢,录屏没有呀!什么都没有,只有截屏,原来明明有的,现在不知道为什么就突然没有了(手机华为青春版)...
  17. IntelliJ IDEA 新版 UI 中的项目导航改进
  18. axure团队合作开发原型图
  19. Chatgpt提升工作效率的7种用法
  20. Windows11安装安卓/Android子系统运行安卓应用程序详细教程

热门文章

  1. ##二维数组指针的解引用
  2. 57.超参数概念-2
  3. JDBC和ODBC之间的区别
  4. ubuntu 安装 LiveSuit 刷机工具
  5. 国家开放大学19春计算机本,(2021春)国家开放大学电大专科《计算机平面设计#40;1#41;》网络课形考任务1及3答案...
  6. JS中常用的几种设计模式
  7. oracle日常运维11g
  8. Win32的入口函数WinMain前面的WINAPI有什么意义?
  9. C# 以GB2312编码保存数据
  10. 交叉熵损失函数(softmax分类器)