2022年实验最小生成树算法的设计与实现.docx
《2022年实验最小生成树算法的设计与实现.docx》由会员分享,可在线阅读,更多相关《2022年实验最小生成树算法的设计与实现.docx(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 试验 5 最小生成树算法的设计与实现一、试验目的1、依据算法设计需要 , 把握连通图的敏捷表示方法;2、把握最小生成树算法,如Prim、Kruskal算法;3、基本把握贪心算法的一般设计方法;4、进一步把握集合的表示与操作算法的应用;二、试验内容1、仔细阅读算法设计教材和数据结构教材内容 法和最小生成树算法;2、设计 Kruskal算法试验程序;, 熟习连通图的不同表示方有n个城市可以用( n-1)条路将它们连通,求最小总路程的和;设计测试问题 ,修改并调试程序 , 输出最小生成树的各条边 , 直至正确为止;三、Kruskal 算法的原理方法边
2、权排序 : 1 3 1 4 6 2 3 6 4 1 4 5 2 3 5 3 4 5 2 5 6 1 2 6 3 5 6 5 6 6 名师归纳总结 1. 初始化时:属于最小生成树的顶点U= 第 1 页,共 9 页- - - - - - -精选学习资料 - - - - - - - - - 不属于最小生成树的顶点 V=1 ,2,3,4,5,6 2. 依据边权排序,选出仍没有连接并且权最小的边(1 3 1),属于最小生成树名师归纳总结 的顶点 U=1 ,3 ,不属于最小生成树的顶点V=2,4,5,6 第 2 页,共 9 页- - - - - - -精选学习资料 - - - - - - - - - 3.
3、 依据边权排序,选出仍没有连接并且权最小的边(4 6 2),属于最小生成树的顶点 U=1 ,3 ,4 ,6 (仍没有合在一起,有两颗子树),不属于最 小生成树的顶点 V=2,5 4. 依据边权排序,选出仍没有连接并且权最小的边(3 6 4),属于最小生名师归纳总结 成树的顶点 U=1 ,3,4,6 (合在一起),不属于最小生成树的顶点V=2,5 第 3 页,共 9 页- - - - - - -精选学习资料 - - - - - - - - - 5. 依据边权排序,选出仍没有连接并且权最小的边(3 6 4),属于最小生成树的顶点 U=1 ,2,3,4,6, ,不属于最小生成树的顶点 V=5 6.
4、依据边权排序,选出仍没有连接并且权最小的边(3 6 4),属于最小生成树的顶点 U=1 ,2,3,4,5,6 此时,最小生成树已完成名师归纳总结 - - - - - - -第 4 页,共 9 页精选学习资料 - - - - - - - - - 四、试验程序的功能模块功能模块:bool cmpEdge a,Edge b; /定义比较方法int getfaint x;/在并查集森林中找到 x 的祖先int sameint x,int y;/判定祖先是否是同一个,即是否联通void mergeint x,int y; /合并子树,即联通两子树sorte+1,e+m+1,cmp; 具体代码:#incl
5、ude #include #include #include /对边按边权进行升序排序#define MAXN_E 100000 #define MAXN_V 100000 using namespace std; struct Edge 名师归纳总结 - - - - - - -第 5 页,共 9 页精选学习资料 - - - - - - - - - int fm,to,dist; eMAXN_E; int faMAXN_V,n,m; /边的起始顶点,边的到达顶点,边权/顶点数组,顶点总数,边总数/定义比较,只是边权比较bool cmpEdge a,Edge b return a.dist b.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 实验 最小 生成 算法 设计 实现
限制150内