下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
问题描述实现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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防水工程检测合同
- 工业园区混凝土路面铺设合同
- 建筑工程升降机安装合同
- 跨国建筑企业人才聘用合同
- 住宅小区建设项目合同样本
- 文化活动柴油发电机租赁协议
- 篮球馆秩序维护保安合同
- 家居装修后二手房销售合同模板
- 超市销售劳务合同范例
- 项目顾问合同三篇
- 美容护肤招商方案
- 新概念英语课件NCE1-lesson57-58(共21张)
- 国开2023秋《人文英语3》第5-8单元作文练习参考答案
- 水平四《排球正面双手传球》教学设计
- 黑龙江省黑河北安市2024届中考二模数学试题含解析
- 计算机系统权限修改审批表
- 建标 189-2017 妇幼健康服务机构建设标准
- 幼儿园PPT课件之大班数学《凑十法》
- 仓库温湿度分布验证报告
- 英语社团-趣配音活动总结
- 国开电大本科工程数学(本)在线形考(形成性考核作业5)试题及答案
评论
0/150
提交评论