书签 分享 收藏 举报 版权申诉 / 29
上传文档赚钱

类型数据结构(牛小飞)5最小生成树课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4105313
  • 上传时间:2022-11-11
  • 格式:PPT
  • 页数:29
  • 大小:125.60KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《数据结构(牛小飞)5最小生成树课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据结构 牛小飞 最小 生成 课件
    资源描述:

    1、最小生成树生成树和生成森林最小生成树小结和作业生成树一、定义一、定义图图G的生成树是的生成树是G的极小连通子图,即包含的极小连通子图,即包含G中的所有顶点(中的所有顶点(n)和)和n-1条边的连通子图条边的连通子图生成树V1V2V3V4V5V8V6V7V1V2V4V8V5V3V6V7V1V2V3V4V5V8V6V7深度优先:深度优先:广度优先:广度优先:生成树二、算法二、算法图的遍历算法访问了图中的每个顶点一次图的遍历算法访问了图中的每个顶点一次且仅一次。且仅一次。访问某个顶点的邻接点时,要经过与这两访问某个顶点的邻接点时,要经过与这两个顶点相关联的边。个顶点相关联的边。因此,图的遍历算法可以

    2、产生一颗生成树:因此,图的遍历算法可以产生一颗生成树:所有的顶点和经过的边。所有的顶点和经过的边。生成树算法void DFSTree(Graph G,int v,CSNode T)v.visit=true;first=true;for(w=FirstAdjVex(G,v);w=0;w=NextAdjVex(G,v,w)if(!w.visit)p=new CSNode(v);if(first)T.lchild=p;first=false;else q.nextsibling=p;q=p;DFSTree(G,w.q);SG1SG2SG3Vw1w3w2算法算法以孩子以孩子兄弟链表作兄弟链表作为生成森

    3、林为生成森林的存储结构的存储结构生成森林一、定义一、定义 非连通图非连通图G的每个连通分量的生成树,的每个连通分量的生成树,构成了图构成了图G的生成森林的生成森林生成森林abchdekfg812345670812345670abchdekfg非连通图非连通图G:G的深度优先搜索生的深度优先搜索生成森林:成森林:achdfekbg生成森林算法算法算法以孩子以孩子兄弟链表作兄弟链表作为生成森林为生成森林的存储结构的存储结构void DFSForest(Graph G,CSNode T)T=null;for(v=0;v=G.vexnum;+v)v.visit=false;for(v=0;v=G.ve

    4、xnum;+v)if(!v.visit)p=new CSNode(v)if(!T)T=p;else q.nextsibling=p;q=p;DFSTree(G,v,p);最小生成树 假设要在假设要在 n n 个城市之间建立通讯联络个城市之间建立通讯联络网,则连通网,则连通 n n 个城市只需要修建个城市只需要修建 n-1n-1条线条线路,路,如何在最节省如何在最节省经费经费的前提下建立这个的前提下建立这个通讯网通讯网?问题:问题:最小生成树连通网:连通网:n个城市和城市间个城市和城市间可能的通信线路可能的通信线路网的顶点:网的顶点:表示城市表示城市网的边:网的边:表示两个城市之间表示两个城市之

    5、间的线路的线路网的边上的权值:网的边上的权值:通信代价通信代价2452710614v4v5v1v3v2v6v7138最小生成树22614v4v5v1v3v2v6v712452710614v4v5v1v3v2v6v7138最小生成树 构造网的一棵最小生成树,即:在e条带权的边中选取n-1条边(不构成回路),使“权值之和权值之和”为最小。该问题等价于:特点:1.最小生成树中边的条数为|V|-1。2.最小生成树无圈。3.最小生成树是包含所有顶点的的最小的树。最小生成树算法三:克鲁斯卡尔算法算法三:克鲁斯卡尔算法KruskalKruskal算法二:普里姆算法算法二:普里姆算法PrimPrim算法一:破

    6、圈法算法一:破圈法破圈法一、一、基本思想基本思想1、将所有的边按权重从大到小排列。2、对每条边e尝试下面的操作,直到G中的边数=n-1:如果删除e,图G仍然是连通图,则从G中删除e 否则,保留e。破圈法v4v5v1v325v2v6v711064724138破圈法abcdegf195141827168213127课堂练习:Prim算法算法思想:使最小生成树连续的一步步成长。在每一步,都要把一个节点当作根并往上加边,这样相关联的顶点就加到增长中的树上。Prim算法 在生成树的构造过程中,图中n个顶点分属两个集合:已落在生成树上的顶点集U和尚未落在生成树上的顶点集V-U,则应在所有连通U中顶点和V-

    7、U中顶点的边中选取权值最小的边。UV-UPrim算法v4v5v1v325v2v6v711064724138v4v5v1v3v2v6v7122416Prim算法v4v5v1v325v2v6v711064724138v4v5v1v3v2v6v7122416vknowndvpvv1v2v3v4v5v6v7FFFFFFF00000000Tv1241Tv4v1v1v12v47v48v44v4Tv2Tv3Tv76v7Tv6Tv55v31v7算法的核心:选择向集合U中加入顶点时,要选择到U具有最短边的顶点。1、对任何一个顶点v,如果它有多个邻接U的边,则需要找出最短的边作为邻接到U的边2、从所有的V U顶点

    8、中,找出具有最短边的顶点,将它加入UPrim算法abcdegf195141827168213127abegf14d8c351621Prim算法Kruskal算法具体做法:先构造一个只含n个顶点的子图SG,然后从权值最小的边开始,若它的添加不使SG中产生回路,则在SG上加上这条边,如此重复,直至加上n-1条边为止。考虑问题的出发点:为使生成树上边的权值之和达到最小,则应使生成树中每一条边的权值尽可能地小。abcdegf3abcegfd 21581416Kruskal算法Kruskal算法v4v5v1v325v2v6v711064724138v4v5v1v3v2v6v7112246算法描述算法描述

    9、:构造非连通图构造非连通图 ST=(V,);ST=(V,);k=i=0;/k k=i=0;/k 选中的边数选中的边数 while(kn-1)while(kn-1)+i;+i;检查边集检查边集E E中第中第i i条权值最小的边条权值最小的边(u,v);(u,v);if if 若若(u,v)(u,v)加入加入STST后不使后不使STST中产生回路中产生回路,则输出边则输出边(u,v);(u,v);且且k+;k+;Kruskal算法两种算法的比较普里姆算法普里姆算法克鲁斯卡尔算法克鲁斯卡尔算法时间复杂度时间复杂度O(n2)O(eloge)稠密图稠密图稀疏图稀疏图算法名称算法名称适应范围适应范围课堂练习求出图中最小生成树abed8c9244756小结和作业1.普里姆算法普里姆算法2.克鲁斯卡尔算法克鲁斯卡尔算法 3.两种算法的比较两种算法的比较 2.最小生成树算法最小生成树算法1.图的生成树和生成森林图的生成树和生成森林作业:作业:P275,9.15,9.18

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:数据结构(牛小飞)5最小生成树课件.ppt
    链接地址:https://www.163wenku.com/p-4105313.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库