收藏 分享(赏)

数据结构课程设计最小生成树的构建实验报告.docx

上传人:dzzj200808 文档编号:2637674 上传时间:2018-09-24 格式:DOCX 页数:16 大小:51.64KB
下载 相关 举报
数据结构课程设计最小生成树的构建实验报告.docx_第1页
第1页 / 共16页
数据结构课程设计最小生成树的构建实验报告.docx_第2页
第2页 / 共16页
数据结构课程设计最小生成树的构建实验报告.docx_第3页
第3页 / 共16页
数据结构课程设计最小生成树的构建实验报告.docx_第4页
第4页 / 共16页
数据结构课程设计最小生成树的构建实验报告.docx_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、数据结构课程设计题目二:最小生成树的构建学院:XXXXXXXXXXX班级:XXXXXXXXXXX学号:XXXXXXXXXXX姓名:XXXXXXXXXXX设计时间: XXXXXXXXXXX目录:1.需求分析- 12.课题设计内容- 1(1)课程设计基本流程- 1(2)详细设计说明- 1(3)界面操作流程图:- 2(4)主要程序- 3(5)运行结果截图- 53.得意之处- 64.设计实践过程中的收获与体会- 65.设计目前存在的问题- 76.主要参考文献- 7 一、 需求分析本课程主要是完成一个最小生成树的构建,要求用克鲁斯卡尔算法或者普利姆算法求网的最小生成树(此程序我用的是普利姆算法) ,并输

2、出各条边及他们的权值。要求用户在使用时可以准确输入顶点及每个顶点的关系,运算出可以建立的关系网,最后利用普利姆算法准确输出最短路径。二、 课程设计内容1、 课程设计基本流程:关于此课程的设计,是从设计要求入手的。根据对知识的掌握程度,我选择了用普利姆算法进行设计。根据实验要求,我定义了一个 prims 类,在类中定义一个私有成员函数和一个公有成员函数。定义相关变量和相关函数,并完善程序。2、 详细设计说明:首先在私有成员 private 中定义节点个数 n、图中边的个数 g,树的边的个数 t,源节点 s。定义二维数组graph_edge994和 tree_edge994,分别为图的边和树的边。

3、因为普利姆算法是把图分为两部分进行运算,所以我定义了 T150,t1 为第一部分, T250,t2为第二部分。在公有成员 public 中定义输入函数 input ()、算法函数 algorithm()、输出函数 output()。1在 input 中进行界面的设计,定义图中边的个数 g的初始值为 0,利用 for 循环实现边的权值的输入,嵌套 if 语句定义图的顶点 i,j;边的权值 w。用 for 循环完成图中可以建立关系网的输出。在 algorithm 中构造算法,将图的两部分进行运算,利用 while 循环找出最短路径,其中嵌套 for 循环和 if语句。在 output 中打印挑选出

4、的边及其对应的权值。最后,设计主函数并完善界面。3、 界面操作流程图:菜单24、 主要程序:#includeclass primsprivate:int n; /节点的个数int graph_edge994; /图的边输入顶点个数 n输入边的权值 w显示关系网 输出挑出的边及其对应的权值int g; /图中边的个数int tree_edge994; /树的边int t; /树的边的个数int s; /源节点/把图分成两个部分int T150,t1; / 第一部分int T250,t2; /第二部分public:void input();int findset(int);void algorit

5、hm();void output();void prims:input()coutn;g=0;/图中边的个数初始值为 0cout :“;int w;3cinw;if(w!=0)g+;graph_edgeg1=i;/定义图的顶点 igraph_edgeg2=j;/定义图的顶点 jgraph_edgeg3=w;/定义边的权值 w/输出图的边cout “graph_edgei3)min=graph_edgei3;u=graph_edgei1;v=graph_edgei2;w=graph_edgei3;p=i;/删除图的边for(int l=p;l :“tree_edgei3endl;int main

6、()prims obj;obj.input();obj.algorithm();obj.output();return 0;5、 运行结果截图:5三、 得意之处这次课程设计的课题虽然比较简单,但是每个函数的编写都花了很大的心思。之前有去过之前有去过图书馆查资料、也上网看到了一些,但有很多地方还是不太明白,有些语句通过自己能理解的方式进行了改进,比如 for 循环语句和 if语句的编写等。在编写过程中,比较得意的地方还是用普利姆算法将图分为两个部分的代码的编写,还有可以准确的显示可以建立的关系网,当运行出现 bug 后,自己又认真修改,解决问题,心情非常喜悦。另外,我最满意的地方就是在运算完成后

7、,可以准确的输出最短路径及其对应的权值,整个界面设计的简单但不失美观,同时方便用户的使用,增加了友好性。四、 设计实践过程中的收获与体会这一星期的课程设计中确实让我增长了不少,也发现自己对于数据结构的知识掌握不够,学得不够好。自己上网看了一些程序,但都不太懂,而且都是用 C 语言编写的,所以,我去图书馆查了些资料,还是很有帮助的。对于 if 语句、for 循环语句和 while 语句我还是查了查C+的书一点一点修改的。其中有一些句子是照着参考资料写的,自己也不太懂。但是经过努力和同学的帮助还是总算没有 bug 了。6五、 设计目前存在的问题目前这个程序还有很多不足,比如界面太过简单。由于这周前前后后有好多事情挤在一起,程序设计的比较仓促。本来想完成第一部分和第二部分的输出和边的权值的显示,可是由于有 bug,问了好多人也不会改,所以放弃了。希望以后能有时间完善这部分的代码吧。六、 主要参考文献数据结构与算法 电子工业出版社C+ 程序设计基础 电子工业出版社7

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报