




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学校超市选址问题需求分析数据模型〔规律构造〕:带权有向图(权值计算:距离*频度)存储构造:typedefstruct{stringvexs[MAX_VERTEX_SIZE];intarcs[MAX_VERTEX_SIZE][MAX_VERTEX_SIZE];intvexnum;//,arcnum;}MGraph;核心算法:Floyd算法(弗洛伊德算法-每一对顶点之间的最短路径)输入数据:各单位名称,距离,频度,单位个数.输出数据:所选单位名称.floyd间的最短距离/最小权值。n*narcs(i,jij单位的最短距离/tt概要设计G=(V,E,wV={v1,v2,vn}。k≤n,V的一个子集。对于Vvi、vj,考虑从vi到vj的中间结点都在vk中的全部路径,设是其中最短的,并设的路径长度vkvi到vjvivk,vkvj,这样便得到表达式。上述争论可以归纳为如下递归式:1ij开头流程图开头MainMain〔〕输入根本信息GreatMgraph〔Gh〕建立邻接矩阵的存储构造Floyd算法NYA[i][j]==INF,i!=ji到j不存在路Floyed〔Gh〕输出i->j的路径和路径长度输出超市的最正确地址:i完毕具体设计1,A[i][jA[i][1]+A[1][j]中较A[i][jA(1),k〔k〕[i][jik2短路径长度。当第n-1〔n-1〔n-〕[i][j]ijn-1A(n-1)[i][jij头文件和变量设定#include”stdafx.h”#include<string.h>#include<stdio.h>#include<stdlib.h>#include<time.h>#include“malloc.h“#include<iostream.h>#defineTURE1#defineFALSE0#defineOK1#defineERROR0#defineOVERFLOW-1#defineINF32767constintMAXVEX=100;typedefcharVextype;构造体的定义typedefstruct{Vextypevexs[MAXVEX][MAXVEX]; //单位名称〔顶点信息;intadj[MAXVEX][MAXVEX];边;intdis[MAXVEX][MAXVEX];intf[MAXVEX];
//单位之间的相通状况〔//单位间距离〔边的长度;//各单位去超市的频率;3intn;inte;}Mgraph;变量的输入voidCreatMgraph(Mgraph*G){
//顶点数和边数;inti,j,k;printf(“请输入单位个数:\n“);scanf(“%d“,&(G->n));printf(“请输入单位间的路径数:\n“);scanf(“%d“,&(G->e));printf(“请输入单位名称:\n“);for(i=0;i<G->n;i++){%d:\n“,i);scanf(“%s“,&G->vexs[i]);}for(i=0;i<G->n;i++)for(j=0;j<G->n;j++){
//构造体的初始化;G->adj[i][j]=0;G->dis[i][j]=0;G->f[i]=0;}for(k=0;k<G->e;k++){printf(:i,j):\n“);scanf(“%d,%d“,&i,&j);//在距离上表达为无向;4printf(“请输入一样两个单位间的距离(格式:dis):\n“);scanf(“%d“,&(G->dis[i][j]));G->adj[i][j]=1;G->adj[j][i]=1;G->dis[j][i]=G->dis[i][j];}for(k=0;k<G->n;k++){%d:\n“,k);scanf(“%d“,&(G->f[k]));}for(i=0;i<G->n;i++) //以距离和频率之积作为
for(j=0;j<G->n;j++){G->dis[i][j]*=G->f[i]; //最终权值非完全无向;if(G->adj[i][j]==0&&i!=j)G->dis[i][j]=INF;}}带权有向图求最短路径floyd算法voidFloyed(Mgraph*G) //floyd{intA[MAXVEX][MAXVEX],path[MAXVEX][MAXVEX];inti,j,k,pre;intcount[MAXVEX];for(i=0;i<G->n;i++) //初始化A[][]和path[][]5数组for(j=0;j<G->n;j++) //置初值;{A[i][j]=G->dis[i][j];path[i][j]=-1;count[i]=0;}for(k=0;k<G->n;k++) //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])) //ijk路径更短{A[i][j]=A[i][k]+A[k][j];path[i][j]=k;}}:\n“);for(i=0;i<G->n;i++)for(j=0;j<G->n;j++){if(i!=j){printf(“\n”);printf(“%d->%d;”,i,j);if(A[i][j]==INF){if(i!=j)6printf(“不存在路径\n“);}else{printf(“路径长度为:%d”,A[i][j]);printf(“路径为:%d*”,i);pre=path[i][j];while(pre!=-1){printf(“%d\n”,pre);pre=path[pre][j];}printf(“%d”,j);}}}//以下为选择总体最优过程,然后确址;for(i=0;i<G->n;i++)for(j=0;j<G->n;j++){if(A[i][j]==INF)count[i]=0;elsecount[i]=1;}for(i=0;i<G->n;i++)if(count[i]){for(j=0;j<G->n;j++)7if(i!=j)A[i][i]+=A[j][i];}k=0;for(i=0;i<G->n;i++){if(count[i])if(A[k][k]>A[i][i])k=i;}printf(“超市的最正确地址为:“);printf(“%s\n”,G->vexs[k]);}主函数模块voidmain{Mgraph*Gh=NULL;Gh=(Mgraph*)malloc(sizeof(Mgraph));CreatMgraph(Gh);Floyed(Gh);system(“pause“);}调试分析此题目的关键点之一:有两个权值:各单位到超市的距离及各单位人去超市的频度。这使得图8distance*frequency;这样就使得图的建立轻而易举。此题目的关键点之二:floyd此题目的关键点之三:path0〔Path=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 航空航天复合材料 课件知识点5 纳米复合材料
- 书香家庭评比
- 新疆专科考试试题及答案
- 机械考试题型及答案
- 2025年糖尿病护理查房
- 外科护理常规
- 中华文本库护理应急预案培训
- 肺炎病例分析护理
- 2025年中国牛奶咖啡起泡器行业市场全景分析及前景机遇研判报告
- 微球囊压迫术护理查房
- 2025年中小学暑假安全教育主题家长会 课件
- 颅内血肿护理查房
- 门诊急救室管理制度
- 2025年沈阳水务集团有限公司-企业报告(代理机构版)
- 近视管理白皮书(2025)专家共识-
- 2024年深圳市深汕特别合作区农村工作者招聘真题
- 数字化艺术-终结性考核-国开(SC)-参考资料
- 2024年贵州省粮食储备集团有限公司招聘考试真题
- 2025山西晋城市国有资本投资运营有限公司部分子公司招聘11人笔试参考题库附带答案详解
- 2025盘锦市兴隆台区辅警考试试卷真题
- 压缩空气储能系统透平膨胀机流动特性与损失优化研究
评论
0/150
提交评论