(完整word版)数据结构课程设计医院选址(word文档良心出品).docVIP

(完整word版)数据结构课程设计医院选址(word文档良心出品).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

医院选址

李*计算机学院0304班

摘要:有n个村庄,现要从这n个村庄中选择一个村庄新建一所医院,使其余的村庄到这所医院的距离总体来说较短,设计较合理。可以将问题抽象为有n个接点,在这n个接点之间建立一个无向图,边上的权值w(i,j)表示村庄i到j之间道路的长度,我们知道,在无向图中n个顶点之间,最多可能设置n(n-1)/2条线路,如何在这些线路中选择n-1条线路,以使总的线路最短?对于n个顶点的连通网可以建立许多不同的无向图,每一个无向图都可以表示一个道路网,其中要选择一个最优图,使图上各边之小。

关键字:节点,连通图,最小生成树,顶点,邻接点

1.引言

图是建立和处理离散数学模型的一个重要工具,它是一门很重要的学科,也是一门很实用的学科,例如在社会科学,语言学,计算机科学,信息论等各个方面都有着广泛的应用,图有许多种表示方法,但是当图中的节点和边的数目都很大时,图的另一种方便的表示方法是用相应的矩阵表示,这种表示方法有很多优点,它使得图的有关信息能以矩阵的形式在计算机中存储起来并加以变换,利用矩阵的表示方法及其运算还可以得到图的一些有关性质。在这个程序中,用到了图论中的树的有关知识,医院选址这个问题有着明显的实际背景,例如要在n个城市之间铺设光缆,如何才能使付出的代价最小等问题,都要用到图的有关知识。在信息高速发展的今天,济济全球化已经呈现明显的趋势,如何在不同的地方建立最优的道路网和信息网,已成为社会竞争中很重要的因素,这不仅关系到要付出的经济代价,而且也关系到谁先占有主动权的问题。有鉴于此,我就做了这个程序。一则为了完成课程设计,二则也为了锻炼自己,多学些东西。

2.需求分析

数据的读入﹑存储,生成文件,将键盘输入的信息存入指定的文件中;设计一程序求解此问题.图的存储结构的选取应和所操作相适应。为了便于选择权值最小的边。此题的存储结构既不选用邻接矩阵的数组表示法,也不选用邻接表,而是以存储(带权)的数组表示图。基本要求如下:用邻接矩阵表示无向网,应显示所选中的村庄到各村庄的最短矩离。具体解决办法见程序设计,此处先举例说明这个问题中的一个思想,假设i到j直接路径的距离为a,如果存在一接点k,使i到k的距离b,k到j的距离c,且b+ca,那么就选择i--k--j这条路径而不选择的i和j的直接路径

3.数据结构与算法设计

3.1数据结构设计

stdlib.h,string.h,iomanip.h,iostream.h为包含的库函数

constintMAX_VEXNUM=30;图的最大顶点数

constintLARGEST=43526;定义无穷大

vexnum,arcnum; 图中当前顶点数和弧数

vexs[MAX_VEXNUM]; 顶点向量,用于存储顶点的信息(名称)

arcs[MAX_VEXNUM][MAX_VEXNUM];邻接矩阵,用于存储边的信息(权值)

3.2.算法设计

采用最短路径算法,求各村庄之间的最短路径,这是该程序的核心算法。

voidFloydGetResult(VAGraphGRA)

{ //用Floyed算法求有向网G中个对顶点的最短路径长度D[v][w]

intD[MAX_VEXNUM][MAX_VEXNUM];//最短路径的带权长度矩阵

for(u=0;uGRA.vexnum;++u)//求各对顶点的最短路径

for(v=0;vGRA.vexnum;++v)

for(w=0;wGRA.vexnum;++w)

if(D[v][u]+D[u][w]D[v][w])

D[v][w]=D[v][u]+D[u][w];

//从v经u到w的一条路径更短

}

4.程序设计

4.1引用库函数及变量的定义

#includestdlib.h

#includestring.h

#includeiomanip.h

#includeiostream.h

constintMAX_VEXNUM=30;//图的最大顶点数

constintLARGEST=43526;//无穷大量

structVAGraph//储存顶点信息和边的信息

{

intvexnum,arcnum; //图中当前顶点数和弧数

char*vexs[MAX_VEXNUM]; /

文档评论(0)

周澈 + 关注
实名认证
文档贡献者

天堂湖

1亿VIP精品文档

相关文档