构造可以使n个城市连接地最小生成树.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用标准文案 PAGE 精彩文档 数据结构课程设计 说 明 书 学 院: 信息科学与工程学院 班 级: 计算机11-2 完 成 人:姓 名: 学 号: 201101050220 姓 名: 学 号: 201101050221 指导教师: 山 东 科 技 大 学 20 课 程 设 计 任 务 书 一、课程设计题目: 构造可以使n个城市连接的最小生成树 二、课程设计应解决的主要问题: (1) 邻接矩阵的构造及其存储 (2) 判断是否能够生成最小生成树 (3) 克鲁斯算法的设计 (4) 利用克鲁斯算法构造最小生成树时是否产生回路的判断 (5) 界面的设计 三、任务发出日期: 2012-11-28 课程设计完成日期: 2012 小组分工说明 小组编号 35 题 目: 构造可使n个城市连接的最小生成树 小组分工情况: 王 露:算法设计,void Kruskal()函数,void set ()函数,void find()函数,void Union()函数 王炜程:void creat()函数,void judge()函数,int main()函数;int menu()函数,void display()函数 组长签字: 年 月 日 指导教师对课程设计的评价 成绩: 指导教师签字: 年 月 日 目录 主要问题5 基本要求5 算法基本思想描述5 详细设计5 1、数据结构的设计 5 1 存储结构 5 2 图的表示6 2、算法的设计6 1 克鲁斯卡尔算法设计6 2 防止不能构成最小生成树的图6 3 模块结构及功能 7 4 主要模块算法描述 7 五、源程序清单9 六、测试数据及测试结果9 1、开始画面 9 2、输入信息 10 3、数据处理 10 (1)判断能否构成最小生成树 10 (2)遍历所有的最小生成树 10 (3)退出 11 七、课程设计总结11 八、附录11 参考书目15 构造可以使n个城市连接的最小生成树 一、主要问题 给定一个地区的n个城市间的距离网,用Prim算法或Kruskal算法建立最小生成树,并计算得到的最小生成树的代价。 二、基本要求 (1)城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。 (2)表示城市间距离网的邻接矩阵(要求至少6个城市,10条边) (3)最小生成树中包括的边及其权值,并显示得到的最小生成树的代价。 三、算法基本思想描述 Kruskal算法思想基本描述:假设连通图N=(V,{E}),则令最小生成树的初始状态为只有n 个顶点而无边的非连通图T=(V,{ }),图中每个顶点自成一个连通分量。在E中选择代价最小的边,若该边依附的顶点落在T中不同的连通分量上,则将此边加入到T中,否则舍去此边而选择下一条代价最小的边。以此类推,直至T中所有顶点都在同一个连通分量上为止。 四、详细设计 1、 数据结构的设计 1 存储结构 邻接矩阵存储方法(数组存储方法),利用两个数组来存储一个图,其构造原理比较简单。 对于具有n个顶点的图G=(V,E),定义一个具有n个元素的一维数组VERTEX[0..n-1],将图中顶点的数据信息分别存入该数组的一个数组元素中。另外,定义一个二维数组A[0..n-1][0..n-1],该二维数组通常被称为邻接矩阵。若以顶点在VERTEX数组中的下标来代

您可能关注的文档

文档评论(0)

dmz158 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档