全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
最优生成树算法的编程图论中讲到的最优生成树在现实中有着广泛的应用,例如为给一些村庄供水而需要建造的管线系统等等。相对简单的图中要找出其最优生成树并不算难,但较为复杂的图中找出最优生成树就不太容易了,此时我们可以把相应的算法编写为求最优树的程序,用计算机快速的运算速度为我们尽快的找出最有生成树,本篇文章就主要讨论一下由Kruskal算法编写的相关程序。最优生成树的Kruskal算法为:(摘自图论及其应用,东南大学出版社)1.在连通赋权图G中选取边e1,使e1的权尽可能小。2.若已选定边e1,e2,.,ei,则从E(G)e1,e2,.,ei中选取边ei+1,使满足以下两条:(1)Ge1,e2,.,ei不含回路;(2)在满足(1)的前提下,使w(ei+1)尽可能小;3,当2不能执行时,停止。根据此算法,可编写相应的程序:用二维数组ann来指代图中的顶点和边,例如a12=5指代顶点v1和v2的连线(即图的边)的权为5。int *cm; /数组c中变量指向排序后的数组a的变量void newturn(int *a,int n); /将a由小到大排序,并将地址赋给指针数组cint openroad(int *b,int n); /判断是否会形成回路的函数void besttree(int *a,int n) /找出最优树 int bnn; /a中某一变量不为0时令b中相应位置变量为1来标记,以此来最后得到需选取的边。 newturn(a,n); int i,j,k=0; while (*ck!=0) for (i=0;in;i+) for (j=0;jn;j+) if (ck=&aij) bij=1; if (openroad(b,n)=0) bij=0; k+; void newturn(int *a,int n) int i,j,k=0; for (i=0;in;i+) for (j=0;jn;j+) while (aij!=0) ck=&aij; for (i=0;in;i+) for (j=0;jn;j+) if (aij*ck) *ck=aij; k+; aij=0; int openroad(int *b,int n,int bij) for (int m=0;mn;m+) for (int k=0;kn;k+) if (bik=0|bmj=0) return 1; if (bjk!=0) openroad(b,n,bjk); if (bmi!=0) openroad(b,n,bmi); return 0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 交叉施工冲突协议书
- 楼层混凝土合同范本
- 文体供货合同协议书
- 旅游健康安会协议书
- 银行理财经理考试题库及答案
- 专科教师考试题库及答案
- 心电图室质控工作试题带答案
- 2026-2031年中国生活服务O2O行业全景调研及投资风险报告
- 平面设计技能试题及答案
- 基于样本几何估计值的支持向量机:理论、算法与实践探索
- (新教材)2025年秋期部编人教版一年级上册语文 第3课 雪地里的小画家 课件
- 2025广东深圳市宝安区建筑工务署第二批招聘员额制人员6人笔试考试备考试题及答案解析
- 施工现场环境保护管理制度及管理措施
- 蛋糕店食品安全管理规章制度
- 养老院年度工作总结报告
- (2025年)保健食品试题(附答案)
- 2025江西九江德安中寰电力建设有限公司招聘2人笔试考试备考题库及答案解析
- 重症医学科体温管理措施培训
- 北师大版五年级数学上册期中测试卷(带答案)
- 大学生职业生涯规划课件
- 《思想道德与法治》课件第四章明确价值要求践行价值准则第三节积极践行社会主义核心价值观
评论
0/150
提交评论