




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构实验报告题 目: 光纤通信网铺设方案设计 班 级: 姓 名: 学 号: 完成日期: 2012/5/28 1问题描述在n个城市间建设光纤通信网络,要求仅选择n-1条线路铺设光缆,且达到每个城市都有光缆连通。请用C语言编写程序,求出以最低经济代价(光缆总量最短)建设这个通信网的方案。城市个数、两个城市间的距离由学生自己设计,存储结构和实现算法由学生自己选定并实现。2需求分析(1)输入的形式和输入值的范围; 形式:数字 范围:无限(2)输出的形式;最小生成树 (3)程序所能达到的功能。在n个城市间建设光纤通信网络,要求仅选择n-1条线路铺设光缆,且达到每个城市都有光缆连通。3概要设计(1)说明本程序中用到的所有抽象数据类型的定义(含数据对象、数据关系、基本操作);typedef int adjmatrixmaxvertexnummaxvertexnum;struct edgenodeint frontvex;int rearvex;int weight;typedef edgenode adgesetmaxedgenum(2)系统中子程序及功能要求;子程序:将建立的网络各个连接的节点赋上权值void insit(adgeset>,int n,adjmatrix GA)for(int i=1;in;i+)GTi.frontvex=1;GTi.rearvex=i+1;GTi.weight=GA1i+1; 子程序:初始化的无向图,将每条边的权值赋值为无穷void insitadj(adjmatrix &GA) for(int i=1;imaxvertexnum;i+)for(int j=1;jmaxvertexnum;j+)GAij=20000;子程序:以各个城市为基础建立一个网络void setadj(adjmatrix &GA,int n) /建立网络for(int i=1;i=n+1;i+)for(int j=i+1;jn+1;j+)printf(请输入第%d个城市到第%d个城市的距离:,i,j);scanf(%d,&GAij);for(i=1;i=n+1;i+)for(int j=i+1;jn+1;j+)GAji=GAij;子程序:输出我们所找到的最小生成树void fun(adjmatrix GA,adgeset>,int n) int i;for(i=1;in;i+)int min=10000,m=i;for(int j=i;jn;j+)if(GTj.weightmin)min=GTj.weight;m=j;edgenode temp=GTi;GTi=GTm;GTm=temp;int k=GTm.rearvex;for(j=i;jn;j+)int t=GTj.rearvex;int w=GAkt;if(wGTj.weight)GTj.weight=w;GTj.frontvex=k;void display(adgeset GT,int n)for(int i=1;in;i+)printf(第%d个城市到第%d城市修建一条电缆!n,GTi.frontvex,GTi.rearvex); printf(这样修建可以使距离最短!n);(3)主程序及各程序模块(函数)之间的层次(调用)关系。int main() printf(请问您要在几个城市间建立网络?n请在此输入:);int n; scanf(%d,&n) ;adgeset GT;adjmatrix GA;insitadj(GA);setadj(GA,n);insit(GT,n,GA);fun(GA,GT,n);display(GT,n);return 0;4详细设计普利姆算法求最小生成树的主要思想假设N=(V,E)是连通网,TE是N上最小生成树中边的集合。算法从U=u0( u0V),TE=开始,重复执行下述操作:在所有uU,vV-U的边(u,v)E中找一条代价最小的边(u0,v0)并入集合TE,同时v0并入U,直至U=V为止。此时TE中必有n-1条边,则T=(V,E)为N的最小生成树。对于最小生成树问题:最小生成树是指在所有生成树中,边上权值之和最小的生成树,另外最小生成树也可能是多个但是他们权值之和是相等的。5总结这次试验是关于最小生成树的一次试验,这次试验利用光纤这个实际问题,将如何设计最小生成树的理论知识应用在实践层面,巧妙地叫理论知识和实际情况结合起来,对我们有一个很好地锻炼方法。这次试验我收获很多,将老师在上课讲解的有关于最小生成树的相关知识很有效的结合起来了,充分的锻炼了自己的动手能力。 在本次试验的学习中让我很清楚的认识了利用普利姆和克鲁斯卡尔算法求解最小生成树的算法思想,明白了最小生成树是怎么样形成的。我们将我们的城市的空间分布抽象为一个带有权值的网络为我们利用普利姆算法和克鲁斯卡尔算法提供了基础。在完成此次试验之后我感触很深。认识到数据结构这门课的重要性,在以后的学习计算机方面的课程时我们要注意理论与实践并行。多多上机实践。只有实践才能出真知,在我们设计程序的时候遇到困难不要急躁,要耐心,细心认真的完成,只有这样才能得到事半功倍的效果。遇到挫折不要放弃,一步一个脚印,最终会得到自己想要的成果。6附录源程序代码:#include#define maxvertexnum 20 #define maxedgenum 40 typedef int adjmatrixmaxvertexnummaxvertexnum;struct edgenodeint frontvex;int rearvex;int weight;typedef edgenode adgesetmaxedgenum;void insitadj(adjmatrix &GA);void setadj(adjmatrix &GA,int n);void fun(adjmatrix GA,adgeset >,int n);void display(adgeset GT,int n);void insit(adgeset >,int n,adjmatrix GA);void insit(adgeset>,int n,adjmatrix GA)for(int i=1;in;i+)GTi.frontvex=1;GTi.rearvex=i+1;GTi.weight=GA1i+1; void insitadj(adjmatrix &GA)for(int i=1;imaxvertexnum;i+)for(int j=1;jmaxvertexnum;j+)GAij=20000;void setadj(adjmatrix &GA,int n) /建立网络for(int i=1;i=n+1;i+)for(int j=i+1;jn+1;j+)printf(请输入第%d个城市到第%d个城市的距离:,i,j);scanf(%d,&GAij);for(i=1;i=n+1;i+)for(int j=i+1;jn+1;j+)GAji=GAij;void fun(adjmatrix GA,adgeset>,int n) int i;for(i=1;in;i+)int min=10000,m=i;for(int j=i;jn;j+)if(GTj.weightmin)min=GTj.weight;m=j;edgenode temp=GTi;GTi=GTm;GTm=temp;int k=GTm.rearvex;for(j=i;jn;j+)int t=GTj.rearvex;int w=GAkt;if(wGTj.weight)GTj.weight=w;GTj.frontvex=k;void display(adgeset GT,int n)for(int i=1;in;i+)printf(第%d个城市到第%d城市修建一条电缆!n,GTi.frontvex,GTi.rearvex); printf(这样修建可以使距离最短!n);int main() printf(请问您要在几个城市间建立网络?n请在此输入:);int n; scanf(%d,&n) ;adgeset GT;adjmatrix GA;insitadj(GA);setadj(GA,n);insit(GT,n,GA);fun(GA,GT,n);display(GT,n);return 0;程序运行结果:请问您要在几个城市间建立网络?请在此输入:4请输入第1个城市到第2个城市的距离:10请输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 洞察2025年下沉市场:家居壁纸行业消费行为与渠道策略研究报告
- 2025年不良资产处置市场格局动态与创新模式创新报告
- 重金属煅烧工知识考核试卷及答案
- 激光头制造工抗压考核试卷及答案
- 2025年物联网传感器行业市场前景与投资风险评估报告
- 麻料作物栽培工异常处理考核试卷及答案
- 汽车制造行业新能源动力与智能化技术研发与创新趋势报告
- 尾气催化转化反应机理-洞察及研究
- 铸管喷漆工5S管理考核试卷及答案
- 拜耳法溶出工协同作业考核试卷及答案
- 2025年私人住宅装修合同及详细工程清单
- 2025年法本法硕真题及答案
- 变压器装配工职业技能考核试卷及答案
- 潍坊工会社会工作者考试试题(含答案)
- 水利工程建设项目安全生产 风险管控“六项机制”建设标准
- 2025广东广州市海珠区人民检察院招聘劳动合同制司法辅助人员5人笔试备考试题及答案解析
- 秋季传染病健康知识培训课件
- 师恩如灯照亮我们的成长路教师节主题班会课件
- 2025医学支气管哮喘防治考试题目及答案
- 2025年教育局遴选笔试重点解析
- 1.2 运动的描述 教学课件 人教版(2024)八年级物理上册
评论
0/150
提交评论