下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
问题描述实现Floyd算法,并求所示有向图中各顶点之间的最短路径及其长度。算法思想采用图的邻接矩阵存储,实现Floyd算法数组存储是否存在中间点使长度缩短。设计描述数据存储结构类型的定义:typedefstructMGraph(charvexs[MAX_VERTEX_NUM];intarcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];intvexnum^rcnum;GraphKindkind;)MGraph;源程序#include<stdlib.h>#include<stdio.h>//最大值//最大值//最大顶点个数#defineMAX_VERTEX_NUM20#defineTRUEl#defineFALSE0typedefenum(DG,DN,UDG,UDN}//四种图类型//四种图类型typedefstructMGraph(//顶点向量//顶点向量//邻接矩阵//图的当前顶点数和弧数//图的种类标志intarcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];intvexnum,arcnum;GraphKindkind;}MGraph;voidfind(intP[MAX_VERTEX_NUM][MAX_VERTEX_NUM][MAX_VERTEX_NUM],MGraphG,intajntb);voidmain()(MGraphG;intD[MAX_VERTEX_NUM][MAX_VERTEX_NUM]/P[MAX_VERTEX_NUM][MAX_VERTEX_NUM][MAX_VERTEX_NUM];intv,w,k,a,b,i;printfC'请输入顶点数和弧数“);scanf("%d%d,l/&G.vexnum/&G.arcnum);G.kind=DG;printff'请输入邻接矩阵\n");for(v=0;v<G.vexnum;v++)for(w=0;w<G.vexnum;w++)scanf("%d"z&G.arcs[v][w]); 〃读入邻接矩阵//P[v][w][k]为TRUE,则从v到w的最短路径中含有k节点//D[v][w]从v到w的最短路径的长度for(v=0;v<G.vexnum;v++)for(w=0;w<G.vexnum;w++)(D[v][w]=G.arcs[v][w];for(k=0;k<G.vexnum;k++)P[v][w][k]=FALSE;if(D[v][w]<INFINITY)P[v][w][v]=P[v][w][w]=TRUE;}for(k=0;k<G.vexnum;k++)for(v=0;v<G.vexnum;v++)for(w=0;w<G.vexnum;w++)if(D[v][k]+D[k][w]<D[v][w]){D[v][w]=D[v][k]+D[k][w];for(i=0;i<G.vexnum;i++)P[v][w][i]=P[v][k][i]||P[k][w][i];}for(a=0;a<G.vexnum;a++)for(b=0;b<G.vexnum;b++)if(D[a][b]<INFINITY&&a!=b){printf("%c到%(:最短路径为”,65+a,65+b);printf(,,%c\t"/65+a);find(PzGza,b);printf(”%c\t",65+b);printf(“长度为%d",D[a][b]);printfCV);})voidfind(intP[MAX_VERTEX_NUM][MAX_VERTEX_NUM][MAX_VERTEX_NUM],MGraph
GJntajntb)(intk;for(k=0;k<G.vexnum;k++)if(P[a][b][k]==TRUE&&k!=a&&k!=b){find(P,G,a,k);printf("%c\t",65+k);find(P,G,k,b);}}测试结果博腌入顶点数和弧数69懵瑞入邻接矩阵0310004100055100051000100025I5I5.TOC\o"1-5"\h\z100010( 0005I5I5.100031 000输入1000一 30输入(1000为无穷!z输出to—MMV^Mv路路路路路路路路路路路路路路路路路路路路y短短短短短短短短短短短短短短短短短短短短an曰<瞽瞽<瞽瞽瞽>瞽瞽>瞽瞽S皆瞽>瞽瞽取to—MMV^Mv路路路路路路路路路路路路路路路路路路路路y短短短短短短短短短短短短短短短短短短短短an曰<瞽瞽<瞽瞽瞽>瞽瞽>瞽瞽S皆瞽>瞽瞽取SBCDFcdjfbDf、bc、f、bcdfbc、dsreAAnABBBCCCDDDEEEEFFFPAAAABBBCCCDDEEEEFFFB长度为3D长废*4F*度为5C长度为1QF长度为5DD长度为5D'B长度为3B
BD
D•PvDDD长度为2continuec长度为4D长度为6B长度为8DD486为为为度度度-fe-fe-feB长度为5B DB F长度为13B C长度为7B C长度为6心得体会~。!!憧得了floyd算法的思想,用邻接矩阵存储带权值的图。问题主要出在输出打印方面VoidfindfintP[MAX_VERTEX_NUM][MAX_VERTEX_NUM][MAX_VERTEX_NUM],MGraphG,intajntb)(intk;for(k=0;k<G.vexnum;k++)if(P[a][b][k]==TRUE&&k!=a&&k!=b){find(BG,a,k);printf(,,\t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年闽江师范高等专科学校马克思主义基本原理概论期末考试题带答案解析
- 2025年天峨县招教考试备考题库带答案解析(必刷)
- 2025年江西电力职业技术学院单招职业适应性测试题库带答案解析
- 2025年贵州食品工程职业学院马克思主义基本原理概论期末考试模拟题附答案解析(夺冠)
- 2025年江西冶金职业技术学院马克思主义基本原理概论期末考试模拟题及答案解析(必刷)
- 2024年青岛职业技术学院马克思主义基本原理概论期末考试题及答案解析(夺冠)
- 2025年承德县幼儿园教师招教考试备考题库带答案解析(必刷)
- 2025年广西职业师范学院马克思主义基本原理概论期末考试模拟题带答案解析
- 2025年山东省烟台市单招职业倾向性测试题库带答案解析
- 2025年首都联合职工大学马克思主义基本原理概论期末考试模拟题附答案解析
- 施工班组劳务分包合同
- 审计人员述职报告
- 气管套管脱管的应急处理
- 汽轮机ETS保护传动试验操作指导书
- 法社会学教程(第三版)教学
- (高清版)DZT 0208-2020 矿产地质勘查规范 金属砂矿类
- 2024磷石膏道路基层材料应用技术规范
- 问卷设计-问卷分析(社会调查课件)
- 刮痧法中医操作考核评分标准
- GB/T 31057.3-2018颗粒材料物理性能测试第3部分:流动性指数的测量
- GB/T 2624.1-2006用安装在圆形截面管道中的差压装置测量满管流体流量第1部分:一般原理和要求
评论
0/150
提交评论