数据结构课程设计12440new.docVIP

  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文档。上传文档
查看更多
数据结构课程设计12440new.doc

成 绩 评 定 表 学生姓名 冯有礼 班级学号 1009010118 专 业 信息与计算科学 课程设计题目 1.最小生成树解决城市联络网建设问题2.线性表的插入,删除,添加。 评 语 组长签字: 成绩 日期 20 年 月 日 课程设计任务书 学 院 理学院 专 业 信息与计算科学 学生姓名 冯有礼 班级学号 1009010118 课程设计题目 1.最小生成树解决城市联络网建设问题2.线性表的插入,删除,添加。 实践教学要求与任务: 1、巩固和加深对数据结构基本知识的理解初步掌握简单软件的分析方法和设计方法。了解与课程有关的工程技术规范,能正确解释和分析结果。 指导教师: 201 年 月 日 专业负责人: 201 年 月 日 学院教学副院长: 201 年 月 日 摘 要 “数据结构”是有关计算技术及信息管理技术专业的一门必修的核心课程。数据结构课程的任务实在讨论在应用问题求解时数据的逻辑组织、在计算机中的存储实现以及相关操作的算法设计。数据结构课程目的是使学生掌握在实际问题解决过程中组织数据、存储数据和处理数据的基本方法,为以后从事软件开发和应用,为进一步学习后续课程打下坚实的基础。 本文第一个问题是针对随着现代网络的高速发展,从成本角度出发,要求所假设的光缆长度最短,故而采用最小生成树来建模此问题。本文给出了一个城市间光缆假设的场景,采用Prim算法、Kruskal算法两种算法解决该城市间光缆假设问题,并通过实验仿真分别实现这两种算法,得到了城市联络网建设的最佳解决方案。 本文第二个问题是根据本学期对数据结构中线性表的学习,编写了一个程序,完成线性表的插入,删除,和查找功能。 关键词:最小生成树;Prim算法;Kruskal算法;线性表 目 录 1.最小生成树解决城市联络网建设问题 1 1.1问题描述 1 1.2问题分析 1 1.3算法分析 2 1.4算法实现及结果分析 5 2.线性表的插入删除查找程序 7 2.1问题描述 7 2.2问题分析 7 2.3算法分析 8 2.4运行结果 9 总 结 10 参考文献 11 附录源程序代码 12 1.最小生成树解决城市联络网建设问题 1.1问题描述 假设要在个城市之间建立通信联络网,其中顶点表示城市,边表示城市之间是否有通路,边上的权值表示在两者间建立通信链路的花费,要求使得任意两市之间都有通信链路,并且使得总的建设费用最少。 显然,我们会想到连通个城市只需要条线路,在每两个城市之间都可以设置一条线路,相应地都要付出一定的经济代价。个城市之间,最多可以设置条线路,那么,如何在这些可能的线路中选择条,使得总的耗费最少呢? 根据所学的知识,我们知道可以通过寻找最小生成树来解决这个问题。下面我们以图1为例,运用普利姆算法以及克鲁斯卡尔算法来解决城市间通信网建立问题。 图1 1.2问题分析 在一个具有几个顶点的连通图中,如果存在子图包含中所有顶点和一部分边,且不形成回路,则称为图的生成树,代价最小生成树则称为最小生成树。 最小生成树有个重要的性质MST性质(最小生成树性质):设是一个连通网络,是顶点集的一个真子集。若是中一条“一个端点在中(例如:),另一个端点不在中的边,且具有最小权值,则一定存在的一棵最小生成树包括此边。多数算法利用这个性质来求解最小生成树,本文用到的普里姆算法和克鲁斯卡尔算法均利用了这个性质,同时它们也属于贪心算法。 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。本文中的城市通信网建设问题要求使得任意两市之间都有通信链路,并且使得总的建设费用最少,故而适合用贪心算法求解。 1.3算法分析 1)Prim 算法 假设是图中顶点的集合,为最小生成树中的边的集合,则算法通过以下步骤可以得到最小生成树:   1:初始化:,。此步骤设立一个只有结点的结点集和一个空的边集作为最小生成树的初始形态,在随后的算法执行中,这个形态会不断的发生变化,直到得到最小生成树为止。   2:在所有边中,找一条权最小的边,将此边加进集合中,并将此边的非中顶点加入中。此步骤的功能是在边集中找一条边,要求这条边满足以下条件:首先边的两个顶点要分别在顶点集合和中,其次边的权要最小。找到这条边以后,把这条边放到边集中,并把这条边上不在中的那

文档评论(0)

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

该用户很懒,什么也没介绍

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档