




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数数儿根据打结结构果实检查报纸被告名称:最小生成树班级: 122名字: *学号: *指导老师: *一、设计目的和任务1.1课程设计目的本课程设计的目的是通过理解和掌握数据结构和算法的设计方法,综合运用具备初步独立分析和设计能力的软件开发过程的问题分析、系统设计、程序代码、测试等基本方法和技能所学到的理论知识和方法来独立分析问题1.2课程设计的任务在问题说明:中,已知有显示可设置在n个城市和城市间的通信线路的无方向连通网。 网的顶点代表城市,两个城市之间的线路,边的权重代表相应的代价。 对于n个点的连通网可以建立很多不同的生成树,每个生成树可以作为一个通信网。 我们要选一棵树,把总成本降到最低。二、设计方案2.1需求分析(1)制作具有可以使用邻接矩阵形式或者邻接表格的存储方式的图(2)使用普利姆算法或者克鲁斯卡尔算法求网络的最小生成树(3)输入各城市的数量和各城市之间的距离。 把城市间的距离作为网络上各点之间的权重。 依次输出生成树中的各边及其权重。2.2数据结构分析构建最小生成树的方法:首先生成树为空,即没有节点和边,首先选择顶点作为生成树的根,然后在生成树的边中不选择权值尽可能小的边,为了保证施加在生成树上的边不循环, 与该边缘相邻的两个顶点必须已经存在于生成树中,一个必须存在于生成树中,在网络上有n个顶点(在此考虑的网络是连通无向图)的情况下,在这种条件下选择n-1边得到的详细过程,设定两个集合首先,选择成为生成树根的节点的顶点,放入u集合,其中一个顶点在u集合中,另一个顶点在V-U集合的边中寻找权重最小的边,将该边和它不在u集合中的顶点添加到生成树中,即输出该边,将该顶点添加到u集合中,这样的操作是n-n圆弧的意思和信息2.3最小生成树的算法分析该函数主要有五个代码块,分别是主函数代码块、相邻矩阵定义模块代码、链路矩阵模块代码的创建、最小生成树Prim算法、成本模块代码、最小生成树kruskal算法和成本模块代码2.4相邻矩阵定义模块代码typedef struct ArcCellPPS; char *info;ArcCell,adj矩阵 20 20 ;typedef struct char vexs20; adj矩阵arcs;int vexnum,arcnum;MGraph_L;int localvex(MGraph_L G,char v ) int i=0; PS (g.vexs I !=v) i; 返回I; 以下用typedef struct定义邻接矩阵,用二维阵列存储邻接矩阵,将参数的最大值设定为20。2.5创建相邻矩阵模块的代码int creatMGraph(MGraph G(请参见。)举止char v1、v2;PS、PS、PS;printf (邻接矩阵:n );printf (图g的顶点(城市)和弧(边)的数量: );扫描( % d ,G.vexnum );扫描( % d ,G.arcnum );printf (所有顶点: );for(i=0; iG.vexsi;以下for(i=0; PK1PK2w;I=本地vex (g,v1 )j=本地vex (g,v2 )g.arcs I .adj=w;g.arcs j .adj=w;以下ljjjjjjprint(g )printf (图g邻接矩阵创建成功 n );return G.vexnum;以下此语句从键盘输入顶点数和边数,输入顶点和权重值,调用循环语句,最后调用creatMGraph_L ()创建连接矩阵。2.6最小生成树kruskal算法和成本模块代码生成最小生成树(mg rapha * d )/最小生成树举止int i、j、n、m、和=0; int k=1;int parentM; edge edgesM;for (i=1; PR PS号; PS )举止for (j=i 1; j=D-vexnum; j ) if (D-arcij.adj=1)举止edgesk.begin=i; edges.end=j;edges.weight=d-arc.j.weight; k; 以下以下以下sort (边缘,d )for (i=1; i=D-arcnum; PS )举止parenti=0;以下printf (最小生成树是:n );for (i=1; i=D-arcnum; i )/核心部分举止n=find (父,edgesi.begin )m=Find(parent,edgesi.end )PS (X!=m) parentn=m;printf( %d,%d %dn ,edgesi.beginedges I .结束edgesi.weight;SUM=SUM edgesi.weight;以下以下cout最小树生成的成本:;coutG.vexsi;以下for(i=0; PK1PK2w;I=本地vex (g,v1 )j=本地vex (g,v2 )g.arcs I .adj=w;g.arcs j .adj=w;以下ljjjjjjprint(g )printf (图g邻接矩阵创建成功 n );return G.vexnum;生成最小生成树(mg rapha * d )/最小生成树举止int i、j、n、m、和=0; int k=1;int parentM; edge edgesM;for (i=1; PR PS号; PS )举止for (j=i 1; j=D-vexnum; j ) if (D-arcij.adj=1)举止edgesk.begin=i; edges.end=j;edges.weight=d-arc I .weight; k; 以下以下以下sort (边缘,d )for (i=1; i=D-arcnum; PS )举止parenti=0;以下printf (最小生成树是:n );for (i=1; i=D-arcnum; i )/核心部分举止n=find (父,edgesi.begin )m=Find(parent,edg
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年呼伦贝尔农垦谢尔塔拉特泥河哈达图浩特陶海农牧场招聘172人笔试历年难、易点深度预测模拟试卷带答案详解
- 2025年禁毒法测试题及答案
- 2025年北京警察招录考试(申论)历年参考题库含答案详解
- 合成孔径雷达成像关键算法剖析与前沿探索
- 基于2025年的跨境电商海外营销中心用户体验优化报告
- 内蒙古呼伦贝尔农垦牙克石、莫拐、免渡河农牧场有限公司招聘笔试题库及答案详解(名校卷)
- 2025年教师招聘之《幼儿教师招聘》通关练习题库包附答案详解(考试直接用)
- 教师招聘之《小学教师招聘》提分评估复习附完整答案详解(考点梳理)
- 2025内蒙古呼伦贝尔农垦莫拐农牧场有限公司招聘16人备考及参考答案详解
- 教师招聘之《小学教师招聘》通关模拟题库及答案详解(真题汇编)
- 生物安全培训试题(答案)
- 2025年公证处聘用制书记员招聘考试要点及面试模拟题解析
- 2025江西吉安庐陵新区招聘社区工作者(专职网格员)招聘22人考试参考试题及答案解析
- 芯片研发流程管理办法
- 2025-2026学年广美版(2024)小学美术二年级上册教学计划及进度表
- 电子工程师知识培训课件
- 2025年手电筒行业研究报告及未来行业发展趋势预测
- 设备使用与保养培训课件
- 兵团连队职工考试试题及答案解析
- 假如我变成了班主任课件
- 2025兵团连队职工考试试题及答案解析
评论
0/150
提交评论