最小生成树算法和算法

最小生成树算法和算法

ID:42111748

大小:86.50 KB

页数:16页

时间:2019-09-08

最小生成树算法和算法_第1页
最小生成树算法和算法_第2页
最小生成树算法和算法_第3页
最小生成树算法和算法_第4页
最小生成树算法和算法_第5页
资源描述:

《最小生成树算法和算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、....包头师范学院本科学年论文论文题目:最小生成树及其算法院系:数学科学学院专业:信息与计算科学学号:0800000062姓名:吉余指导教师:吴云撰写学年:2010至2011学年二零一零年十一月专业资料....目录1有关最小生成树的概念12prim算法介绍23prim算法的实现34kruskal算法介绍85kruskal算法的实现96算法比较12参考文献13专业资料....摘要连通图广泛应用于交通建设,求连通图的最小生成树是最主要的应用。比如要在n个城市间建立通信联络网,要考虑的是如何保证n点连通的前提下最节省经费,

2、就应用到了最小生成树。求图的最小生成树有两种算法,一种是Prim(普里姆)算法,另一种是Kruskal(克鲁斯卡尔)算法。本文重点讲述prum算法和kruskai算法和比较。本文从分析课题的题目背景、题目意义、题目要求等出发,分别从需求分析、总体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成情况进行了总结。关键字:prum算法、最小生成树kruskal算法算法比较专业资料....1有关最小生成树的概念最小生成树:连通加权图里权和最小的生成树称为最小生成树。从最小生成树定义看主要先了解图、

3、树及生成树。本文中最小生成树在计算机中存储方法是应用邻接矩阵的形式存储。故也应了解邻接矩阵的定义。定义一(图):图是有一个非空的顶点集合和一个描述顶点之间的关系即边的集合组成。它可以形式化的定义为:G=(V,E)V={

4、VertexType}E={<,>

5、,∈V∧P(,) }其中,G表示一个图,V是图G中顶点的集合,E是V中顶点偶对的有限集,这些顶点偶对称为边,VertexType是用于描述顶点类型,集合E中P(,)的含义是:对有向图来说用“<>”表示,对无向图来说用“()”表示,即从到两个顶点之间存在边。定义二(树)

6、:树包含n(n>=0)个节点。当n=0时表示为空树。其定义如下:T=(D,R)其中,D为树中节点的有限集合,关系R满足一下条件:1)有且仅有一个节点k0属于D,它对于关系R来说没有前趋节点,结点k0称作树的根结点。2)除根结点k0之外,D中的每个结点仅有一个前趋结点,但可以有过个后继结点。3)D中可以有多个终端结点。即除根结点无父结点,其余各结点都有一个父结点和n(n>=0)个子结点。图的矩阵表示,本文中只用到了邻接矩阵,故在这只提出邻接矩阵的定义,及其图在邻接矩阵中的表示。设图A=(V,E)是一个有n个顶点的图,图的

7、邻接矩阵是一个二维数组A.edge[n][n],  用来存放顶点的信息和边或弧的信息。定义三(邻接矩阵(AdjacencyMatrix)):是表示顶点之间相邻关系的矩阵。设G=(V,E)是一个图,其中V={v1,v2,…,vn}。G的邻接矩阵是一个具有下列性质的n阶方阵:(本文主要为无向图的邻接矩阵)(1)无向图的邻接矩阵是对称的;有向图的邻接矩阵可能是不对称的。专业资料....(1)无向图的邻接矩阵中第i行第j列表示i结点到j结点的度即权值,可以表示为某一具体应用的数据。也表示i结点是否与j结点连通。定义四(生成树)

8、:如果T是G的一个生成子图又是一棵树,则称T是图G的一棵生成树。2prim算法介绍最小生成树的两个著名算法:prim算法[和克鲁斯卡尔算法[2],本文应用的是prim算法。则克鲁斯卡尔算法则不进行描述了。Prim算法的基本思想:首先,选择带最小的边,把它放进生成树里,相继添加带权最小的边,这些边与已在树立的顶点相关联,并且不与已在数理的边形成圈,当已经添加了n-1条边为止。PRIM算法介绍:设图中顶点的全集为V,U中存放已选中过的点,用数据结构closedge[]存放选择需要的数据,先把下标0对应点放入U中,close

9、dge[i].uxiabiao=0,(因为U中只有下标0这一个点),closedge[i].lowcost中存放其他点到下标为0的点的权,closedge[0].lowcost=0;表示下标为0的点已在U中了。在closedge按顺序找到最先不在U中,且与U中点直接相连的点,把此边的权赋给min,用擂台式比较法选出closedge[j].lowcost中最小的,此时min中存放的是最小值所在下标,也就是下一个要放入U中的点的下标。输出选中的这条边,它是最小生成树中的一条边。因为U中又加入了一个点,所以要修改closed

10、ge[i].lowcost的值,比较新选中点与V-U中点的权和原来的closedge[i].lowcost,取小的那个存入。然后继续如上的选择,循环vexnum-1次,就选出了最小生成树中的vexnum-1条边。本程序采用数组存储结构进行存储,把第一个点所到的边记录下来,然后把权值最小的边存入数组,同时将刚才所存边的的终点作为起点

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。