数据结构(第7章图).ppt

  1. 1、本文档共89页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构(第7章图)

数 据 结 构 主讲:张荣梅 第六章 图 知 识 点 图的逻辑结构特征及图的基本术语 邻接矩阵和邻接表两种图的存储结构的特点及适用范围 深度优先搜索和广度优先搜索两种遍历算法的特点和执行过程 生成树和最小生成树的概念及构造最小生成树的prim和kruskal算法 最短路径的含义及求最短路径的算法 拓扑排序的基本思想和步骤 关键路径法及其在管理科学中的作用 难 点 图的遍历、最小生成树、最短路径、拓朴排序算法的理解 关键路径法求关键活动和关键路径的方法 要 求 熟练掌握以下内容: 图的存储结构 图的遍历算法 了解以下内容: 图的最小生成树和求最小生成树算法的基本思想 带权有向图的最短路径问题 利用AOV网络的拓朴排序问题 利用AOE网络的关键路径法 第七章目录 7.1 图的定义和术语 7.2 图的存储结构 7.3 图的遍历 7.4 图的连通性问题 7.5 有向无环图及其应用 7.6 最短路径 7.7 关键路径法 小 结 习题与练习 7.1 图的定义和术语 7.1 图的定义和术语 二、名词和术语 有向图与无向图 无向图G2 子图 非连通图G 图G1的强连通分量 7.2 图的存储结构 7.2.1 数组表示法—邻接矩阵 用两个数组分别存储数据元素(顶点)的信息和数据元素之间的关系(边或弧)的信息。 算法分析 构造邻接矩阵无向图算法 7.2.2 邻接表—链式 构造邻接表图的算法 7.3 图的遍历 7.3.1 深度优先搜索(类似于树的先根遍历) 从图中某个顶点V0 出发,访问此顶点,然后依次从V0的未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和V0有路径相通的顶点都被访问到,若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。 图的深度优先遍历示例---非连通图 图的广度优先遍历算法的实现 7.3.2 广度优先搜索 图的广度优先遍历示例---非连通图 广度优先遍历算法二 7.4 图的连通性问题 生成树与生成森林 7.4.3 最小生成树MST 二、构造最小生成树的算法 Prim算法 Prim算法的两种实现方法 (1)严蔚敏 P175 (2)徐孝凯 P226 克鲁斯卡尔算法 普里姆(prim)算法 假设G=(V,E)是一个具有n 个顶点的连通网络,T=(U,TE)是G的最小生成树,其中U是T的顶点集,TE是T的边集,U和TE的初值均为空。 算法开始时,首先从V中任取一个顶点(假定为V1),将此顶点并入U中,此时最小生成树顶点集U={V1}; 然后从那些其一个端点已在U中,另一个端点仍在U外的所有边中,找一条最短(即权值最小)的边,假定该边为(Vi,Vj),其中Vi∈U,Vj∈V-U,并把该边(Vi,Vj)和顶点Vj分别并入T的边集TE和顶点集U; 如此进行下去,每次往生成树里并入一个顶点和一条边,直到n-1次后,把所有n 个顶点都并入生成树T的顶点集U中,此时U=V,TE中包含有(n-1)条边; 这样,T就是最后得到的最小生成树。 普里姆算法中每次选取的边两端,总是一个已连通顶点(在U集合内)和一个未连通顶点(在U集合外),故这个边选取后一定能将未连通顶点连通而又保证不会形成环路。 补充内容——边集数组 建立一个带权图的边集数组的算法 克鲁斯卡尔算法 算法: 构造非连通图 ST=( V,{ } ); k = i = 0; while (kn-1) { ++i; 从边集 E 中选取第i条权值最小的边(u,v); 若(u,v)加入ST后不使ST中产生回路, 则 输出边(u,v); 且 k++; } 7.5 有向无环图及其应用 拓扑排序算法分析 关键活动算法 7.6最短路径** 带权有向图邻接矩阵中的∞在计算机上可用允许的最大值代替。 回忆:最小生成树的概念;用于解决什么问题;构造最小生成树的算法(Prim算法和Kruskal算法)。 7.6最短路径** “最短路径”主要讨论“带权有向图”。 为什么要研究“最短路径”呢? 路径上的第一个顶点为“源点”,最后一个顶点为“终点”。 7.6最短路径** 7.6.1 从某个源点到各顶点的最短路径 什么是求“从某个源点到各顶点的最短路径”? 本小节讨论单源点的最短路径问题:给定带权有向图G和源点v,求从v到G中其余各顶点的最短路径。 7.6最短路径** Dijkstra提出一个按路径长度递增的次序产生最短路径的算法。 首先,引进一个辅助向量D,它的每个分量D[i]表示当前所找到的从始点v到每个终点vi的最短路径长度。它的初态为:若从v到vi有弧,则D[i]为弧上的权值;否则置D[i]为∞。显然,长度为: D[j]=Min{D[i]|vi∈

文档评论(0)

80219pm + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档