1 / 9
文档名称:

学校超市选址问题.doc

格式:doc   大小:22KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

学校超市选址问题.doc

上传人:文库旗舰店 2019/10/14 文件大小:22 KB

下载得到文件列表

学校超市选址问题.doc

文档介绍

文档介绍://:定义控制台应用程序的入口点。//#include""#include<>#include<>#include<>#include<>#include""#URE1#defineFALSE0#defineOK1#defineERROR0#defineOVERFLOW-1#defineINF32767constintMAXVEX=100;typedefcharVextype;typedefcharVextype;typedefstruct{Vextypevexs[MAXVEX][MAXVEX];//单位名称(顶点信息);intadj[MAXVEX][MAXVEX];//单位之间的相通情况(是否有边);intdis[MAXVEX][MAXVEX];//单位间距离(边的长度);intf[MAXVEX];//各单位去超市的频率;intn;//顶点数和边数;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++){printf("请输入第%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);//在距离上体现为无向;printf("请输入相通两个单位间的距离(格式: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++){printf("请输入第%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;}}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[][]数组for(j=0;j<G->n;j++)//置初值;{A[i][j]=G->dis[i][j];path[i][j]=-1;count[i]=0;}for(