- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 皮带硫化知识.doc VIP
- [紧固件]常用紧固件选型设计.pdf VIP
- 高速公路钢筋混凝土盖板涵首件施工方案.doc VIP
- 解读《GB_Z 44526 - 2024无损检测 操作能力鉴定》全面解读.docx VIP
- 本田GX630-660-690发动机维修手册.pdf VIP
- 2025四川成都东部集团有限公司及下属企业招聘产业招商等岗位94人笔试备考题库及答案解析.docx VIP
- (全国通用)01-2023年秋季高一入学分班考试模拟卷地理试题(解析版).docx VIP
- 20210129-中信建投-因子深度研究系列:高频订单失衡及价差因子.pdf VIP
- 发电厂检修规程.docx VIP
- 2024-2025学年度第二学期期末综合素质调研七年级英语试题(含听力材料及答案).docx
文档评论(0)