ImageVerifierCode 换一换
格式:DOC , 页数:12 ,大小:155KB ,
文档编号:6104085      下载积分:20 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-6104085.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(刘殿科)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(最小生成树问题.doc)为本站会员(刘殿科)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

最小生成树问题.doc

1、-本页仅作为文档封面,使用时请直接删除即可-内页可以根据需求调整合适字体及大小-最小生成树问题(总10页) 榆林学院12届课程设计 最小生成树问题课程设计说明书 学生姓名: 赵佳 学 号: 12 院 系: 信息工程学院 专 业: 计算机科学与技术 班 级: 计14本1 指导教师: 答辩时间: 年 月 日 最小生成树问题一、 问题陈述最小生成树问题设计要求:在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。存储结构采用多种。求解算法多种。二、 需求分析1. 在n个城市之间建设网络,只需保证连通即可。2. 求城市之间最经济的架设方法。3.采用多种存储结构,求解算法也采用多种。三、 概要

2、设计1、 功能模块图开始创建一个图功能选择1.建立邻接矩阵2.建立邻接表算法4. PRIM算法结束2、功能描述(1) CreateUDG()创建一个图:通过给用户信息提示,让用户将城市信息及城市之间的联系关系和连接权值写入程序,并根据写入的数据创建成一个图。(2) Switch()功能选择:给用户提示信息,让用户选择相应功能。(3) Adjacency_Matrix()建立邻接矩阵:将用户输入的数据整理成邻接矩阵并显现在屏幕上。(4) Adjacency_List()建立邻接表:将用户输入的数据整理成临接表并显现在屏幕上。(5) MiniSpanTree_KRSL()kruskal算法:利用k

3、ruskal算法求出图的最小生成树,即:城市之间最经济的连接方案。(6) MiniSpanTree_PRIM()PRIM算法:利用PRIM算法求出图的最小生成树,即:城市之间最经济的连接方案。四、 详细设计本次课程设计采用两种存储结构以及两种求解算法。1、两种存储结构的存储定义如下:typedef struct Arcell double adj; Arcell,AdjMatrixMAX_VERTEX_NUMMAX_VERTEX_NUM; typedef struct char vexsMAX_VERTEX_NUM; 开始标志顶点1加入U集合寻找满足边的一个顶点在U,另一个顶点在V的最小边形成

4、n-1条边的生成树顶点k加入U修改由顶点k到其他顶点边的权值结束得到最小生成树CreateUDG()main()Adjacency_Matrix()Adjacency_List()MiniSpanTree_KRSL()MiniSpanTree_PRIM()locateVex()locateVex()Minimum()locateVex()Sortdge()dj=MAX; cout请输入两个城市名称及其连接费用(严禁连接重复输入!):endl; for(k=0;k dgevaluek.ch1 dgevaluek.ch2 dgevaluek.value; i = LocateVex(G,dgeva

5、luek.ch1); j = LocateVex(G,dgevaluek.ch2); ij.adj = dgevaluek.value; ji.adj = ij.adj; return OK; int LocateVex(MGraph G,char ch) dj=MAX)cout0 ; elsecoutij.adj ; coutendl; void Adjacency_List(MGraph G,Dgevalue dgevalue) h1=i&dgevaluej.ch2!=i)coutdgevaluej.ch2;else if(dgevaluej.ch1!=i&dgevaluej.ch2=i)

6、coutdgevaluej.ch1;coutbb endl;void MiniSpanTree_KRSL(MGraph G,Dgevalue & dgevalue)h1); p2 = bjLocateVex(G,dgevaluei.ch2); if(p1 != p2) cout 城市dgevaluei.ch1与城市dgevaluei.ch2连接。endl; for(j=0; j dgevaluej.value) temp = dgevaluei.value; dgevaluei.value = dgevaluej.value; dgevaluej.value = temp; ch1 = dge

7、valuei.ch1; dgevaluei.ch1 = dgevaluej.ch1; dgevaluej.ch1 = ch1; ch2 = dgevaluei.ch2; dgevaluei.ch2 = dgevaluej.ch2; dgevaluej.ch2 = ch2; void MiniSpanTree_PRIM(MGraph G,char u)djvex = u; closedgej.lowcost = kj.adj; closedgek.lowcost = 0; for(i=1; i; i+) k = Minimum(G,closedge); cout 城市closedgek.adjv

8、ex与城市k连接。endl; closedgek.lowcost = 0; for(j=0; j; +j) ifkj.adj closedgej.lowcost) closedgej.adjvex = k; closedgej.lowcost= kj.adj; int Minimum(MGraph G,Closedge closedge) owcost != 0 & closedgei.lowcost k) k = closedgei.lowcost; j = i; return j; void main() MGraph G; Dgevalue dgevalue; CreateUDG(G,d

9、gevalue); char u; cout图创建成功。; cout请根据如下菜单选择操作。n; cout1、用邻接矩阵存储:endl; cout2、用邻接表存储:endl; cout3、克鲁斯卡尔算法求最经济的连接方案endl; cout4、普里姆算法求最经济的连接方案endl; int s; char y=y; while(y=y) cout请选择菜单:s; switch(s) case 1: cout用邻接矩阵存储为:endl; Adjacency_Matrix(G); break; case 2: cout用邻接表存储为:endl; Adjacency_List(G,dgevalue)

10、; break; case 3: cout克鲁斯卡尔算法最经济的连接方案为:endl; MiniSpanTree_KRSL(G,dgevalue); break; case 4: cout普里姆算法最经济的连接方案为:endl; coutu; MiniSpanTree_PRIM(G,u); break; default: cout输入有误!; break; coutendly; if(y=n) break; 五、 运行结果与测试六、 设计体会与总结通过本次课程设计,我在程序设计中,用邻接矩阵和邻接表这两种存储结构进行编程,且对Prim算法和Kruskal算法生成最小生成树有了一个初步的了解,同

11、时也为日后的毕业设计打下了良好的基础。而且通过课程设计在下述各方面得到了锻炼:1、能根据实际问题的具体情况,结合数据结构课程中的基本理论和基本算法,正确分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法。2、提高程序设计和调试能力。通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。3、培养算法分析能力。分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。在本次课程设计中,知道如何在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。并且用了多种求解方式。这几天的课程设计让我充分地体会到了上机实践对于计算机编程的重要性。只顾学习理论是远远不够的。实践中可以发现许许多多的问题,然后通过同学老师的帮助,得以解决,让自己的编程能力得到极大的提升。

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|