普利姆算法求最小生成树.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文档。上传文档
查看更多
普利姆算法求最小生成树

设计题目 给定任意的网或图和任意的顶点,用prime算法的基本思想求出该图的所有最小生成树。 问题分析和任务定义 设计要求和具体任务 要求用prime算法的基本思想设计程序,对给定的任意的图或网求出所有的最小生成树并且输出所有的最小生成树。 输入和输出的格式 由于是求出最小的生成树,所以输入的是图的节点以及权值的信息,输出的是生成的最小生成树,即输出为树。输出的是最小生成树的顶点以及对应的定点之间的权值。例如:顶点a 权值3 顶点b权值 2 顶点c 权值1 顶点d。 算法的功能 该算法采用prime算法的基本思想,算法对任意图中的任意顶点就行图的整个遍历得出图中的最小生成树,再进行调用另子函数 (该子函数也是应用了prime算法的基本思想)用一个一重的for循环输出所有的最小生成树。即完成了设计的要求。 设计算法的测试用例 (一)、正确的例子: 输入顶点数和边数:5 8 输入相应节点和权值的信息: 顶点信息:a b c d e 顶点 顶点 权值 边的信息:第一条边的信息:1 2 3 第二条边的信息:1 3 2 第三条边的信息:1 5 5 第四条边的信息:2 5 9 第五条边的信息:2 4 4 第六条边的信息:4 5 5 第七条边的信息:3 4 8 第八条边的信息:3 5 6 对应的顶点以及序号: 1 a 2 b 3 c 4 d 5 e 输入开始遍历的顶点序号:2 结果如下: 最小生成树最小生成树最小生成树最小生成树最小生成树顶点bacde权值3 2245顶点acabd权值23334顶点cbbab权值44423顶点dddca权值55552顶点eeeec 以上表格中即为程序用例结果. (二)、错误的输入用例。 还用以上正确的用例中图的信息,在主函数中输入开始遍历???节点序号时,错误的输入使得序号不在节点序号的范围以内,就提醒错误的输入,例如:输入6.提示输入数据错误,请重新输入数据。直到输入的数据正确为止。 二、数据结构的选择和概要的设计 (1):所用的数据结构 图,数组,顺序表。 Typedef struct{ char data;//顶点信息 int n;//顶点序号 }vexnode; Typedef struct{ int n; 顶点个数 int e;边的条数 int vexnode vex[max];存储顶点序号数组 int edge[max][max];存储边的权值数组 }magrph;用邻接矩阵建图。 Typedef struct{ int data[max];存储最小生成树的顶点序号 Int last;表长 }record;顺序表 建图时采用邻接矩阵的结构,定义邻接矩阵时用到了一维数组和二维数组,分别存储顶点的信息和边的权值。因为该算法对图中的边的权值频繁的比较,所以采用邻接矩阵方便比较。数组在程序中用运很多,有标记数组,有存储数组,因为用到for循环所以采用数组比较容易控制。顺序表主要是对遍历后所得的最小生成树的顶点的序号进行存储,并返回到主函数。 (2):概要设计 该程序的核心算法prime1子函数是运用两个数组和一个顺序表对整个程序进行控制,用一个数组close[max]标记已经遍历过的顶点的序号,防止下一次循环时再次被遍历,减少运算的次数而且防止程序发生混乱。Indgree[max]数组用来存储被遍历过且符合要求的顶点的序号,用顺序表q记录遍历后所有顶点的序号,即是该图中其中一最小生成树的顶点的序号,将所得的顺序表返回到主函数中。再通过for循环调用prime2子函数进而求出所有的最小生成树。一、模块之间的调用流程。 以下是各个函数之间的联系的流程图,主要反映主函数调用各个子函数的的流程图。 j=T-last

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档