版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大连民族学院 计算机科学与工程学院实验报告 实验题目: 最小生成树的Kruskal算法 课程名称: 离散数学 实验类型: 演示性 验证性 操作性 设计性 综合性 专业:软件工程 班级:111学生姓名:XX 学号:XX 实验日期:2012年12月6-28日实验地点:金石滩校区机房 201 实验学时:10学时实验成绩: 指导教师: 焉德军 姜楠 2012年12月28日 实验原理 设所给定无向连通加权图具有n个结点,m条边,首先,将各条边的权按从小 到大的顺序排序。然后依次将这些边按所给图的结构放到生成树中去。如果在放 置某一条边时,使得生成树形成回路,则删除这条边。这样,直至生成树具有 n-1条边
2、时,我们所得到的就是一棵最小生成树。 实验内容 给定无向连通加权图,编程设计求出其一棵最小生成树。 实验目的 通过算法设计并编程实现求出给定无向连通加权图的一棵最小生成树, 加深学生对求最小生成树的Kruskal算法的理解。 实验步骤 (1) 边依小到大顺序得丨1,丨2,,Im。 (2) 置初值:一 = S, 0= i,1= j。 (3) 若 i=n-1 ,则转(6)。 (4) 若生成树边集S并入一条新的边lj之后产生的回路,则j+1 = j,并转(4)。 (5) 否则,i+1 二 i ; lj= S (i ); j+1 = j,转(3)。 (6) 输出最小生成树So (7) 结束。 具体程序
3、的C+实现如下: #include using namespacestd; con sti nt MaxVertex = 20; constint MaxEdge = 100; con sti nt MaxSize = 100; struct EdgeType int from; int to; int weight; ; struct EdgeGraph char vertexMaxVertex; EdgeType edgeMaxEdge; int vertexNum; int edgeNum; ; int FindRoot( int parent, int v); void InputIn
4、fo(); void Kruskal(EdgeGraph G) int vex1,vex2,f,t; int i,num; int parentMaxVertex; for (i=0; iG.vertexNum; i+) parenti = -1; for (num =0,i=0; iG.edgeNum; i+) vex1 = FindRoot(parent, G.edgei.from); vex2 = FindRoot(parent, G.edgei.to); if(vex1 != vex2) cout ( G.edgei.from , G.edgei.to ) endl; f = G.ed
5、gei.from; t = G.edgei.to; cout ( G.vertexf , G.vertext ) Weight: G.edgei.weight endl; cout -1) t = parentt; return t; void InputInfo() EdgeGraph G; cout Please input vertexNum , edgeNum: G.vertexNum G.edgeNum; cout Please input the information of edges: endl; for (int i=0; i G.vertexi; cout Please i
6、nput this edge attaches two vertices subscript and its weight endl; for (int j=0; j G.edgej.from G.edgej.to G.edgej.weight; Kruskal(G); int main() InputInfo(); system(pause); return 0; 实验过程中遇到的问题及解决过程 比如不知道如何存储边集数组, 以及比知道如何声明一些变量, 函数和怎样去 调用Kruskal函数 解决:通过设置结构体EdgeType与结构体EdgeGrapI的联合来存储边集,因为在 刚开始我在主
7、函数中用EdgeGraph声明变量G来作为形参去调用Kruskal(G),编 译时就会警告未被初始化的G,的程序出错,后来我将Kruskal(G)在Inputlnfo() 中调用,因为In put Info()函数中声明了变量G,并使得G初始化,从而是的程序 能正常运行。 测试的图与预期生成的最小树 实验记录 D:Drafthao.De bu gProjectl 3 ,exe Please input b8 Please input A B C D E F Please input 1 4 & 3 & 12 17 19 25 26 34 38 46 uertexNun , edgeNum: the infDPnation of edges: this edge attaches two uertices subscript and its weight Ue ight: 12 Meight: 17 Ueight: 19 Meight: 25 Ueight: 26 实验总结,感想 通过这次的上机实验, 加深了我对课本上的理论知识的认识与理解,然我真实的体验到 了从研究问题到解决问题的探索
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淮阴师范学院《政治学原理》2021-2022学年第一学期期末试卷
- 淮阴工学院《天然药物绿色制备技术》2022-2023学年第一学期期末试卷
- DB4420+T+55-2024《龙舟竞渡文化体验服务指南》
- DB2310-T 149-2024铃兰分株育苗技术规程
- 有关招聘计划锦集五篇
- 专业领域学习技巧探讨座谈会考核试卷
- 宠物行为问题诊断与矫正考核试卷
- 农药制造的质量保障与质量控制考核试卷
- 木材采运管理中的协同与协调机制考核试卷
- 弹射玩具企业品牌竞争力提升考核试卷
- 2024至2030年中国大米市场调查及发展趋势研究报告
- 3.1列代数式表示数量关系(第2课时 列代数式) 课件 2024-2025学年七年级数学上册 (人教版2024)
- 土壤污染重点监管单位隐患排查技术指南第4部分:医药制造业
- 变压器二手买卖合同范本2024年
- 2024年全国高考Ⅰ卷英语试题及答案
- 个人不再信访承诺书
- 2024年山西航空产业集团限公司校园招聘(高频重点提升专题训练)共500题附带答案详解
- NB-T 10436-2020 电动汽车快速更换电池箱冷却接口通.用技术要求
- 毓璜顶医院出院记录
- 人教版高中地理选择性必修1第一章地球的运动单元检测含答案
- xf124-2013正压式消防空气呼吸器标准
评论
0/150
提交评论