- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最优布线问题
滨江学院
《数据结构课程设计》
报告
院 系 计算机系
专 业 软件工程
学生姓名 刘宏光
学 号 20112344916
成 绩
二O一三 年 11 月 30 日
目录
设计目的------------------------------------1
需求分析------------------------------------1
程序流程图----------------------------------1
设计内容------------------------------------2
软件测试------------------------------------5
设计总结------------------------------------7
源程序--------------------------------------8
一.需求分析
1.如何将问题抽象成数据结构类型。
2如何选择存储结构去表示一个带权网络。
3.如何在所选存储结构下输出这个带权网络。
4. 如何计算N台计算机之间的最小生成树,即连接N个计算机的最短路径,核心是Prim算法。
5.如何输入N个计算机间连接费用的邻接矩阵,即所需数据,可以由键盘输入和文件读入。
6.如何输出最小生成树的边和权值,及其表示方式,可以用控制台输出或文件输出。
二.概要设计
此问题的关键在于如何实现Prim算法,实现的过程中如何得到构成最小生成树的所有顶点,此外输入输出格式也是一个关键问题所在。
Prim算法的基本思想:假设N=(V,{E})是连通网,TE是N上最小生成树中边的集合。算法从U={u0}( u0∈V),TE={}开始,重复执行下述操作:在所有u∈U,v∈V-U的边(u,v)∈E中找一条代价最小的边(u0,v0)并入集合TE,同时v0并入U,直至U=V为止。此时TE中必有n-1条边,则T=(V,{E})为N的最小生成树。
本实验是用文件进行输入、输出,其格式为:
输入文件:第一行为整数n(2=n=100),表示计算机的数目。此后的n行,每行n个整数。第x+1行y列的整数表示直接连接第x台计算机和第y台计算机的费用。
样例输入:
3
0 1 2
1 0 1
2 1 0
输出文件:直接输出连接N台计算机花费的最小费用
样例输出:
2(表示连接1和2,2和3,费用为2)
三.详细设计
定义一个权值的最大值:
#define infinity 1000000
图的最大顶点数为30
#define max_vertexes 30
定义邻接矩阵,即边表,Graph是以以邻接矩阵存储的图类型
typedef int Graph[max_vertexes][max_vertexes];
通过邻接矩阵的建立,可以将任意两点的权值存入其中,便于进行各边的权值的比较修改,在Prim算法中,为实现这个算法需附设一个辅助数组closeset,以记录从U到V-U具有最小代价的边,对每个顶点vi∈V-U,在辅助数组中存在一个相应分量closeset[i-1],他包括两个域,其中lowcost存储该边上的权值。显然,
closedge[i-1].lowcost=Min{cost(u,vi)| u∈U}
从算法可以看出每加入一个顶点到U中,closedge数组都会发生相应的变化。
程序模块之间的调用:在主函数中调用邻接矩阵的初始化函数,邻接矩阵的生成函数,Prim算法的函数,图的构造函数,输出函数。邻接矩阵的生成函数主要解决的是边的信息存储问题,而Prim算法的函数是解决计算出最小生成树的功能。
下面是整个程序的运行流程:
四.调试分析
调试过程中遇到了一系列问题,比如说与预定的输入输出格式不相同。其中输入文件中第一个数字代表计算机个数,要先提取出来后,才能将剩下的数据赋值给邻接矩阵,不注意的话容易搞错。
本题采用Prim算法,它的时间复杂度是O(n2),构造最小生成树的另一个算法是Kruskal算法。当图的边数是e是,时间复杂度为O(eloge)。显然,当en2时,Prim算法效率比Kruskal高,相反,Kruskal算法比Prim算法好的多。
五.用户使用说明
1.工程下的输入文件wire.in.txt负责数据的输入,运行程序前需要将数据保存在其中,数据格式为:第一行为整数n(2=n=100),表示计算机的数目。此后的n行,每行n个整数
您可能关注的文档
- 智能交通灯开题报告.doc
- 智能交通灯控制系统开题报告.doc
- 智能仪器原理与设计教学大纲.doc
- 智能仪器多路巡回数据数据采集系统.doc
- 智慧社区服务平台方案20131106.doc
- 智能仪器设计.doc
- 智能交通建设方案.doc
- 智能仪器设计论文.doc
- 智能仪表课程设计电子钟.doc
- 智能仪器温度测量.doc
- CNAS-CL63-2017 司法鉴定-法庭科学机构能力认可准则在声像资料鉴定领域的应用说明.docx
- 12J7-3 河北《内装修-吊顶》.docx
- 12N2 河北省12系列建筑标准设计图集 燃气(油)供热锅炉房工程.docx
- 内蒙古 12S8 排水工程 DBJ03-22-2014.docx
- 山西省 12S10 12系列建筑标准设计 管道支架、吊架.docx
- 16J601-木门窗标准图集.docx
- 12J8 河北省12系列《 楼梯》.docx
- CNAS-GL37 2015 校准和测量能力(CMC)表示指南.docx
- CNAS-RL02-2016 能力验证规则.docx
- 津02SJ601 PVC塑料门窗标准.docx
最近下载
- 钻井工程培训.ppt
- 2023河南三门峡市公安局招聘留置看护队员197人考试备考题库及答案解析.docx VIP
- 超星尔雅学习通《形势与政策(2025春)》章节测试题库及答案一套.docx VIP
- 葡萄酒工艺学完整版.ppt VIP
- 高中语文课件:《红楼梦》选讲16.pptx
- 超星尔雅学习通《形势与政策(2025春)》章节测试题库【有一套】.docx VIP
- 社会调查研究方法:社会现象的测量PPT教学课件.pptx
- BS EN 13749-2011铁路应用 — 轮对和转向架 — 转向架结构要求的规定方法(中文版).doc
- 某村供水工程初步设计报告.docx VIP
- 2025中国低空经济行业研究报告.pdf
文档评论(0)