- 1、本文档共131页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构与算法第7章图
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 有向无环图及其应用 计算结果如下图所示,可见a2、a3和a8为关键活动,组成一条从源点到汇点的关键路径。 本 章 总 结 学习要点 本章主要介绍了图的定义及术语、图的存储结构、深度和广度优先两种遍历算法、图的连通性问题和求最小生成树及生成森林的算法、拓扑排序和关键路径求解等问题,主要学习要点如下: ① 图的概念和形式化定义及有关术语; ② 图的邻接矩阵表示法、邻接表和十字链表表示法; ③ 连通图遍历基本思想和深度优先及广度优先搜索算法; ④ 无向图的连通分量和生成树以及有向图的强连通分量的求解方法及步骤; ⑤ 最小生成树的有关概念和生成算法; ⑥ 拓扑排序和关键路径的思想、求解步骤和算法。 本 章 总 结 基本要求 (1)深刻领会图的基本概念和其存储结构 ① 知道图这种非线性数据结构的定义、术语以及与树的区别; ② 弄清有向图、无向图、无向网络的类型定义及其邻接矩阵和邻接表表示法的特点和区别; ③ 掌握有向图、无向图、无向网络的邻接矩阵和邻接表的建立算法; ④ 对图的十字链表和邻接多重表表示方法有一定了解。 (2)对图的遍历应能达到“综合应用”层次 ① 熟知连通图的深度优先搜索和广度优先搜索的思想、实现步骤和算法; ② 清楚非连通图的遍历方法和连通分量的求解方法; 本 章 总 结 ③ 对给定的无向图,能根据它的存储结构确定其深度优先搜索和广度优先搜索输出序列。 (3)图的连通性问题要求深刻地理解,并掌握生成树算法 ① 清楚无向图的生成树、最小生成树的概念和生成算法的基本思想和执行过程; ② 能求出给定无向网络的一棵最小生成树。 (4)对有向图及其应用问题要有深刻地理解 掌握拓扑排序及关键路径的基本思想、求解方法和步骤。 重点和难点 重点是图形结构的概念、性质、存储方式(含邻接矩阵和邻接表)以及连通图的遍历算法,难点是求图的最小生成树、拓扑排序算法和关键路径。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * 例7-1 例7-1 在广度优先搜索中,若对x的访问先于y,则对x邻接点的访问也先于对y邻接点的访问。因此,可采用队列来暂存那些刚访问过,但可能还有未访问的邻接点的顶点。 例7-1 如果要遍历一个非连通图,则需多次调用dfs或bfs,每次都得到一个连通分量,调用dfs或bfs的次数就是连通分量的个数。上面给出的就是以邻接表为存储结构,通过调用深度优先搜索算法实现计算连通分量的算法。 有向无环图及其应用 有向无环图 顾名思义,有向无环图(directed acyclic graph,简称DAG)是指一个无环的有向图,它是一种类似于有向树的特殊有向图。如图所示为有向树、DAG图和有向图的例子。 有向无环图及其应用 判断无向图是否有环,可看图的深度优先遍历过程中是否遇到指向已访问顶点的边(回边),若有,则必定存在环。对于有向图,这条回边有可能是指向深度优先生成森林中另一棵生成树上顶点的弧。但如果从有向图上某个顶点v出发进行深度优先遍历,在遍历结束之前,若出现一条从顶点u到顶点v的回边,由于u在生成树上是v的子孙,则有向图中必定存在包含顶点v和u的环。因此,判断有向图是否存在环要比无向图复杂。 除了描述多项式以外,有向无环图也是描述一项工程或系统进行过程的有效工具。在一般情况下,工程由若干个称为“活动”(activity)的子工程组成,而这些子工程之间存在一定的约束条件(比如执行的先后次序)。对整个工程而言,工程的顺利执行以及对整个工程完成所需要的最短时间的估算是人们最为关心的两个问题,而这两个问题的解决可通过对有向图进行拓扑排序和关键路径操作来实现,下面分别进行讨论。 有向无环图及其应用 AOV网与拓扑排序 在一般情况下,可用有向图中的顶点表示活动,有向边表示活动之间的先后关系,这样的图被称为顶点表示活动的网(activity on vertex network,AOV网)。在网中,若从顶点i到顶点j有一条有向路径,则i是j的前驱,j是i的后继。若i, j是网中一条弧,则i是j的直接前驱,j是i的直接后继。AOV网表示了活动之间的优先关系。例如,计算机专业的学生要拿到学位必须完成一系列规定的基本课程(见下表),这些课程中有的是独立于所有其他课程的基础课程,必须最先学习;有些课程作为某些课程的先修课程必须在那些课程之前进行学习;而有些课程可随
文档评论(0)