数据结构与算法图课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据结构与算法图课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 课件
- 资源描述:
-
1、数据结构与算法数据结构与算法第第7 7章章 图图通信工程教研室通信工程教研室 要点回顾要点回顾n图的基本概念及存储方式图的基本概念及存储方式n图的遍历图的遍历通信工程教研室通信工程教研室 7.5 最小生成树最小生成树v基本概念基本概念vPrim算法算法vKruskal算法算法通信工程教研室通信工程教研室 7.5 最小生成树最小生成树v问题提出问题提出 13149181921123389顶点城市,边 两城市之间的公路,权相应的代价,希望找到使n个城市连通的总造价最低的方案构造最小生成树。ABCDEF12139891418332119通信工程教研室通信工程教研室 v问题分析问题分析 7.5 最小生
2、成树最小生成树pn个城市间,最多可修建n(n-1)/2条公路。pn个村镇间建立公路网,只需n-1条公路。问题转化为:如何在可能的公路中选择n-1条,能把所有 村镇(顶点)均连起来,且总耗费(各边权 值之和)最小。通信工程教研室通信工程教研室 一、基本概念一、基本概念 若G 是连通图G的子图,并有:V(G)=V(G),E(G )E(G),还满足:G 是连通图,且所有顶点不存在回路;G 图G的生成树是一棵包含G的所有顶点的树,树上所有权值总和表示代价,那么在G的所有的生成树中,代价最小的生成树称为图G的最小生成树最小生成树(minimum-cost spanning tree,简称MST)。通信工
3、程教研室通信工程教研室 例:下图例:下图(b),(c),(d)为为(a)所示连通图的不同生成树。所示连通图的不同生成树。(a)BCFDAEBCFDAE(b)BCFDAE(c)BCFDAE(d)一、基本概念一、基本概念通信工程教研室通信工程教研室(a)连通图连通图(b)边权值总和边权值总和 37(d)边权值总和边权值总和 26(c)边权值总和边权值总和 23BFDE6CA4510122BCFDAE438626BCFDAE45810123D62BCFAE5310一、基本概念一、基本概念通信工程教研室通信工程教研室 n必须使用且仅使用该网络中的n-1条边来连接网络中的n个顶点;n不能使用产生回路的边
4、;n各边上的权值总和达到最小。一、基本概念一、基本概念通信工程教研室通信工程教研室 oMST性质性质 设G=(V,E)是一个连通网,U是顶点集V的一个非空子集。若(u,v)是一条具有最小权值的边,其中uU,vV-U,则必存在一棵包含边(u,v)的最小生成树。o用反证法证明如下:n 由于T是生成树,T中必存在不同于边(u,v)的另一条边(u,v ),使得u U,v V-U,且u和u 之间,v和v 之间均有路径相连通。n 假设网G的任何一棵最小生成树都不包含边(u,v),显然当把边(u,v)加入到G的一棵最小生成树T中时,由生成树的定义,将产生一个含有边(u,v)的回路。n 将边(u ,v )删除
5、,这样就消除了上述回路,并得到了另一棵生成树T。由于W(u,v)W(u,v),所以生成树T 的耗费不大于树T的耗费。于是T 是一棵包含边(u,v)的最小生成树,这与假设矛盾。v普里姆普里姆(Prim)算法算法 v克鲁斯卡尔(克鲁斯卡尔(Kruskal)算法)算法 一、基本概念一、基本概念通信工程教研室通信工程教研室 二、二、Prim算法算法o设G=(V,E)是连通网,TE是G上最小生成树中边的集合,则Prim算法通过以下步骤得到最小生成树:n 初始状态:U=u0,TE=。其中u0是顶点集合V中的某一个顶点;n 在所有uU,vV-U的边(u,v)E中找一条权值最小的边(u0,v0),将这条边加进
6、集合TE中,同时将此边的另一顶点v0并入U;n 如果U=V,则算法结束;否则重复步骤2;n 算法结束时,TE中包含了G中的n-1条边。经过上述步骤选取到的所有边恰好就构成了图G的一棵最小生成树。v算法思想算法思想 通信工程教研室通信工程教研室 例165432651356642516543265135664251364256516465352 Prim算法构造最小生成树的过程算法构造最小生成树的过程14253二、二、Prim算法算法通信工程教研室通信工程教研室 ABCDEF12139891418332119A 练习练习BCDFE89121318边权值总和:边权值总和:8+9+12+13+18=6
7、0二、二、Prim算法算法通信工程教研室通信工程教研室 三、三、Kruskal算法算法o设图G=(V,E)其生成树T的顶点集合为V,边集合为TE。n 初始状态:只有n个顶点而无边的非连通图T=(V,),每 个顶点自成一个连通分量;n 在E中选取代价最小的边,若该边依附的顶点落在T中不同的连通分量上,则将此边加入到T中;否则,舍去此边,选取下一条代价最小的边;n 依此类推,直至T中所有顶点都在同一连通分量上为止。v算法思想算法思想 通信工程教研室通信工程教研室 例165432651356642516543212345三三、Kruskal算法算法通信工程教研室通信工程教研室 ABCDEF12139
8、891418332119A 练习练习BCDFE89121318边权值总和:边权值总和:8+9+12+13+18=60三三、Kruskal算法算法通信工程教研室通信工程教研室 iClosedgei12345UV-UkadjvexlowcostV16V11V15V1V1V1V2,V3,V4,V5,V62adjvexlowcostV350V15V36V34V1,V3V2,V4,V5,V65adjvexlowcostV350V62V360V1,V3,V6V2,V4,V53adjvexlowcostV3500V360V1,V3,V6,V4V2,V51adjvexlowcost000V230V1,V3,V
9、6,V4,V2V54adjvexlowcost00000V1,V3,V6,V4,V2,V5 Prim算法各参量的变化算法各参量的变化 四、四、Prim算法的计算机实现算法的计算机实现通信工程教研室通信工程教研室 设置辅助数组closedge,记录从U到V-U具有最小权值的边。对每个顶点viV-U,在辅助数组中存在一个相应的分量closedgei-1,它包括两个域:closedgei-1.lowcost=Mincost(u,vi)|u U:各顶点的边中,权值最小的边的权值;closedgei-1.vex:表示上述权值最小的边所依附的U集中的顶点。0 0 0 0 0 0 0 0 0 0 0 0 0
10、 60 6 1 1 5 max 5 max maxmax iVexilowcosti 0 1 2 3 4 5 ivexilowcosti 0 1 2 3 4 5U=v0U=v0,v2V-U=v1,V2,V3,V4,V5 V-U=v1,V3,V4,V5 V V2 2V V0 0V V3 3V V5 5V V4 4V V1 13652165546U UV V2 2V V0 0V V3 3V V5 5V V4 4V V1 13652165546U U 0 2 0 0 2 2 0 2 0 0 2 2 0 5 0 5 60 5 0 5 6 4 4四、四、Prim算法的计算机实现算法的计算机实现通信工程教
展开阅读全文