




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子商务软件试题及答案
- 了解2025年税法考试的试题及答案
- WPS操作中的职业技能提升试题及答案
- WPS自定义样式与格式设置试题及答案
- 数据分析与图表制作试题及答案
- 新版软件设计师考试试题及答案解析
- 现代汉语考试开放性试题及答案整合
- 2025年工业机器人智能控制技术成果鉴定与智能客服报告
- Photoshop图像编码与格式试题及答案
- 提升汉语口语流畅度的训练方法试题及答案
- 汉代文化课件图片高清
- 2024年延安通和电业有限责任公司招聘笔试真题
- 【四川卷】【高二】四川省成都市蓉城名校联盟2023-2024学年高二下学期期末联考数学试题
- 液压油供应合同协议
- 艾滋病病人的心理护理
- 2025-2030煤油产业规划专项研究报告
- 香港劳务服务合同协议
- 园林喷洒器企业数字化转型与智慧升级战略研究报告
- GB/T 9065.2-2025液压传动连接软管接头第2部分:24°锥形
- 道路运输汛期教育培训
- 患者投诉处理与护理试题及答案
评论
0/150
提交评论