- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构最小生成树讨论课报告.doc
《数据结构》讨论课 报告
课程名称: 最小生成树的求解方法及分析
指导老师:
班 级:计算机科学与技术四班
班 级:
计算机科学与技术四班
目录
1?摘要
?讨论课目的和任务
?讨论课内容
算法简介
4. 1普里姆算法 4. 2克鲁斯卡尔算法 4. 3其他算法简介
源程序
6 .讨论课结果
7.讨论课中出现的问题及修改情况?-?
8 .讨论课感受及体会
1?摘要
给定一个连通网络,要求构造具有最小代价的生成树时,也即使生成树的各 边的权值总和达到最小。把生成树各边的权值总和定义为生成树的权,那么具有 最小权值的生成树就构成了连通网络的最小生成树。
构造最小生成树的算法有很多种,其中大多数的算法都利用了最小生成树的 一个性质,简称为MST性质:假设G二(V, E)是一个连通网络,U是V中的一个 真子集,若存在顶点u eu和顶点v e(v _U )的边(u, v)是一条具有最小权值 的边,则必存在G的一棵最小生成树包括这条边(u, v)。
利用该性质构造最小生成树的常用算法主要有:Prim(普里姆)算法和 Kruskal (克鲁斯卡尔)算法。
关键词:最小生成树,Prim算法,Kruskal算法
2 ?讨论课目的和任务
已知一个无向连通网表示n个城市以及城市间可能设置的通信网络线路,其 中网的顶点表示城市,边表示两个城市之间的线路,赋于边上的权值表示相应的 代价。对于n个点的连通网能建立许多不同的生成树,每一棵生成树都可以是一 个通信网。我们要选择一棵生成树,使总的耗费最小。
讨论课内容
建立一个图,英存储方式可以采用邻接矩阵形式,需要定义两个数组,一个 存储顶点,一个存储边,存储边的数组表明节点间的连通关系和边的权值。利用 普里姆算法和克鲁斯卡尔算法求网的最小生成树。按顺序输出生成树中各条边以 及权值。
算法简介
1普里姆算法
1. 1简述
从连通网N={V,E}中的某一顶点U0出发,选择与它关联的具有最小权 值的边(UO, v),将其顶点加入到生成树的顶点集合U中。以后每一步,一个 顶点在U中,而另一个顶点不在U中的各条边中选择权值最小的边(u, v), 把它的顶点加入到集合U中。如此继续下去,直到网中的所有顶点都加入 到生成树顶点集合U中为止。
4. 1?2图形解析
4?2.克鲁斯卡尔算法
4. 1.1简述
将图中各个顶点看成是各棵树上的根结点(一棵树),则它是一个含 有n棵树的一个森林。从网的边集E中选取一条权值最小的边,若该条 边的两个顶点分屈不同的树,则将其加入子图,也就是说,将这两个顶点 分别所在的两棵树合成一棵树;反之,若该条边的两个顶点已落在同一棵 树上,则不可取,而应该取下一条权值最小的边再试之。依次类推,直至 森林中只有--棵树,也即子图中含有n-l条边为止。
4. 1?2图形解析
4. 3.其他算法
4. 3. 1. Sollin (Boruvka)算法
Sollin (Brouvka)其实是前面介绍两种算法的综合,每次迭代同时扩 展多课子树,直到得到最小生成树T。
步骤
用定点数组记录每个子树(一开始是单个定点)的最近邻居。(类 似Prim算法)
对于每一条边进行处理(类似Kruskal算法)
如果这条边连成的两个顶点同属于一个集合,则不处理,否则检测这 条边连接的两个子树,如果是连接这两个子树的最小边,则更新(合并)由 于每次循环迭代时,每棵树都会合并成一棵较大的子树,因此每次循环迭 代都会使子树的数量至少减少一半,或者说第i次迭代每个分量大小至少 为。所以,循环迭代的总次数为0(logn)o每次循坏迭代所需要的计算时间: 对于第2步,每次检查所有边0(m),去更新每个连通分量的最小弧;对于 第3步,合并个子树。所以总的复杂度为0(E*logV)。
89
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
T
Edge nn[maxE], a[maxE];
void Boruvka(Graph g. Edge mst[])
算法如下:
typedef struct {int v; int w; doubLe wt; } Edge;
typeder struct {int V; int E; doubLe **adj } Graph;
/*nn存储每个分量的最邻近,a存储尚未删除且还没在MST中
的边h用于访问要检查的下一条边N用于存放下一步所保存的边
每一步都对应着检查剩余的边,连接不同分量的顶点的边被保
留在下一步中最后每一步将每个分量与它最邻近的分量合并,
并将最近邻边添加到MST中
int h, i, j, k, v, w, N;
Edge e;
int E = GRAPHedges(a, G);
fo
您可能关注的文档
最近下载
- 办公耗材类保证服务的措施.docx VIP
- 网招团队日常管理.pptx
- 阿兹海默症护理.pptx VIP
- 罐区设备设施风险分级管控清单.pdf VIP
- DB32T 4582-2023 宗教活动场所安全管理规范 .pdf VIP
- 专题03 2025年西城区高三一模作文“用功与有功” “如你所愿”导写(原题呈现 审题立意 素材积累 高分范文 类题迁移).docx VIP
- BATCH RELEASE CERTIFICATE(外贸出口BRC两个模板).doc
- (投标书范本)政府采购投标书.pdf VIP
- 专题02 2025年东城区高三一模作文“适合的与热爱的” “先声”导写(原题呈现 审题立意 素材积累 高分范文 类题迁移).docx VIP
- 沪教版九上化学 2.1 性质活泼的氧气第2课时 氧气的实验室制法与性质实验 课件(共17张PPT)(含音频+视频).ppt VIP
文档评论(0)