



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
最优生成树算法的编程图论中讲到的最优生成树在现实中有着广泛的应用,例如为给一些村庄供水而需要建造的管线系统等等。相对简单的图中要找出其最优生成树并不算难,但较为复杂的图中找出最优生成树就不太容易了,此时我们可以把相应的算法编写为求最优树的程序,用计算机快速的运算速度为我们尽快的找出最有生成树,本篇文章就主要讨论一下由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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚双方子女抚养费用及探望权约定合同范本
- 髂窝脓肿课件
- 环保水产养殖业生态环境保护预案
- 提高免疫力的健康方法
- 嵌入式软件设计模式手册
- 2025专升本审计学试题及答案
- 制定符合客户喜好的产品推广方案
- 2025中国医药招聘公司总监等高级管理岗位笔试历年参考题库附带答案详解
- 设施设备保养维护要求
- 地产行业可持续发展规划
- 某县某年度高标准基本农田建设项目复核报告
- 现代辅助生殖技术护理伦理
- 体育设施建设造价评估方案
- 风力发电运维值班员(高级工)理论考试题库(浓缩400题)
- 施工现场安排及人材机计划
- 教师督导问责办法培训
- 人美版美术七年级上册第一单元《第2课 品篆刻之美》课件
- 户外演出舞台方案
- 2024届高考英语1000核心词考前背熟事半功倍
- 宪法培训课件教学课件
- 华为全球培训中心
评论
0/150
提交评论