2022年《数据结构》课程设计报告N个城市最小生成树 .pdf
《2022年《数据结构》课程设计报告N个城市最小生成树 .pdf》由会员分享,可在线阅读,更多相关《2022年《数据结构》课程设计报告N个城市最小生成树 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构课程设计报告学号101842110 姓名*8 班级软件 1042 指导教师* 安徽工业大学计算机学院2012年 6 月名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 目录构造 n 个城市连接的最小生成树(1)问题描述 (2)需求分析及设计思路 (3)数据结构定义 (4)系统功能模块介绍 (5)源程序 (6) 运行结果及调试分析 (7)课程设计总结 名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
2、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 二构造n 个城市连接的最小生成树(1)问题描述一个地区的 n 个城市间的距离网,用Prim 算法或 Kruskal算法建立最小生成树, 并计算得到的最小生成树的代价。基本要求:1) 城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。2) 表示城市间距离网的邻接矩阵( 要求至
3、少 6 个城市,10 条边) (1)需求分析及设计思路首先解决如下5 个问题:(1)、如何选择存储结构去建立一个带权网络。(2)、如何在所选存储结构下输出这个带权网络。(3)、如何实现 PRIM 算法的功能。(4)、如何从每个顶点开始找到所有的最小生成树的顶点。(5)、如何输出最小生成树的边及其权值。此问题的关键在于如何实现PRIM 算法,实现的过程中如何得到构成最小生成树的所有顶点,此外输出也是一个关键问题所在,在此过程中经过了多次调试。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
4、第 3 页,共 11 页 - - - - - - - - - 首先我们对问题进行大致的概要分析:这个问题主要牵涉到通过PRIM 的基本算法思想实现程序所要求的功能,该算法的主要思想是:假设N=(V,E )是连通网, TE是 N 上最小生成树中边的集合。算法从U=u0( u0V),TE= 开始,重复执行下述操作:在所有uU,vV-U 的边( u,v)E 中找一条代价最小的边(u0,v0) 并入集合 TE, 同时 v0并入 U, 直至 U=V 为止。此时 TE 中必有 n-1 条边,则 T=(V,E )为 N 的最小生成树。问题的输入数据的格式为:首先提示输入带权网络的顶点边数,我定义的为整形数据
5、型, 然后输入每一条边的信息, 即边的两个顶点以及权值,是十进制整数类型,这样我们就建立一个带权网络,并用邻接矩阵来存储,生成一个方阵显示出来。问题的输出数据格式为:输出是以邻接矩阵存储结构下的方阵,以及从不同顶点开始省城的最小生成树。题目要求以及达到目标: 题目要求用普利姆算法实现任意给定的网和顶点的所有最小生成树,并且输出各边的权值。(3)数据结构定义#include #include #define INFINITY 30000 /* 定义一个权值的最大值 */ #define MaxVertexNum 30 /* 图的最大顶点数为30 */ typedefstruct /intvert
6、exsMaxVertexNum; /*顶点表 */ int arcsMaxVertexNumMaxVertexNum; /* 邻接矩阵,即边表 */ intvertexNum,edgeNum; /* 图的当前顶点数和边数 */ MGraph; /*Graph是以以邻接矩阵存储的图类型*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - typedefstruct intadjvertex; /* 某顶点 与已 构造 好的部 分
7、生 成树的 顶点 之间权 值最 小的顶点 */ intlowcost; /* 某顶点与已构造好的部分生成树的顶点之间的最小权值*/ ClosEdgeMaxVertexNum; /* 用普里 姆 算法 求最 小 生成 树时的 辅助数 组*/ (4)系统功能模块介绍输出矩阵存储的形式: (城市间无路径用?代替,如图)voidDisMatix(MGraph *G) 创建图:voidCreatGraph(MGraph *G) PRiM求最小生成树:voidMiniSpanTree_PRIM(MGraph *G,int u ) 主函数:int main() (5)源程序#include #include
8、 #include #define INFINITY 30000 /* 定义一个权值的最大值 */ #define MaxVertexNum 30 /* 图的最大顶点数为30 */ typedefstruct int arcsMaxVertexNumMaxVertexNum; /* 邻接矩阵,即边表 */ intvertexNum,edgeNum; /* 图的当前顶点数和边数 */ MGraph; /*Graph是以以邻接矩阵存储的图类型*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
9、- 第 5 页,共 11 页 - - - - - - - - - typedefstruct intadjvertex; /* 某顶点 与已 构造 好的部 分生 成树的 顶点 之间权 值最 小的顶点 */ intlowcost; /* 某顶点与已构造好的部分生成树的顶点之间的最小权值*/ ClosEdgeMaxVertexNum; /* 用普里 姆 算法 求最 小 生成 树时的 辅助数 组*/ voidDisMatix(MGraph *G) inti,j; printf(n图的邻接矩阵:n); for(i=1;ivertexNum;i+) for(j=1;jvertexNum;j+) if(G
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 2022年数据结构课程设计报告N个城市最小生成树 2022 课程设计 报告 城市 最小 生成
限制150内