网站大量收购独家精品文档,联系QQ:2885784924

数据结构与算法-有向无环图及其应用.ppt

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

7.1图的定义和术语 7.2 图的存储结构 7.3 图的遍历 7.4 图的连通性问题 7.5 有向无环图及其应用 7.6 最短路径 £7.5 有向无环图及其应用 £7.5.1 有向无环图 有向无环图(directed acycline graph):无环的有向图,简称DAG 图。DAG图是一类较有向树更一般的特殊有向图。 图7.15 有向树、DAG图和有向图一例 例如,图7.15示例了有向树、DAG图和有向图的例子。 (2)表达式子式共享 例如,下述表达式((a +b ) * (b * (c + d)) + (c + d) * e) * ((c + d) * e),用 二叉树表示如图7.16所示,用有向无环图表示如图7.17所示。 图7.16 用二叉树描述表达式 * + * * * + e + + + * a b b c c d d e c d 图7.17 描述表达式的有向无环图 * + e a b c d * + * + * 表达式((a +b ) * (b * (c + d)) + (c + d) * e) * ((c + d) * e) £7.5.2 拓扑排序 全序关系:R是集合X上的偏序,若对每个x, y∈X必有xRy或yRx, 则称R是集合X上的全序关系。 (1)定义 拓扑排序(Topological Sort):简单地说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。 偏序关系:若集合X上的关系R是自反的、反对称的和传递的,则称R是集合X上的偏序关系。 (2)AOV-网 AOV-网:用顶点表示活动,用弧表示活动间的优先关系的有向图 称为顶点表示活动的网(Activity On Vertex Network),简称AOV-网。 在网中,若从顶点i到顶点j有一条有向路径,则i是j的前驱; j是i的后继。若i, j是网中的一条弧,则i是j的直接前驱; j是i的直接后继。 例如,一个软件专业的学生必须学习一系列基本课程(如图7.18所示), 其中有些课程是基础课,它独力于其他课程,如《高等数学》;而另一些 课程必须在学完作为它的基础的先修课程才能开始。如,在《程序设计基 础》和《离散数学》学完之前就不能开始学习《数据结构》。这些先决条 件定义了课程之间的领先(优先)关系。这个关系可以用有向图7.19清楚 的表示。 图7.18 软件专业的学生必须学习的课程 课程编号 课程名称 先决条件 C1 程序设计基础 无 C2 离散数学 C1 C3 数据结构 C1,C2 C4 汇编语言 C1 C5 语言的设计和分析 C3,C4 C6 计算机原理 C11 C7 编译原理 C3,C5 C8 操作系统 C3,C6 C9 高等数学 无 C10 线性代数 C9 C12 数值分析 C9,C10,C1 C11 普通物理 C9 图7.19 表示课程之间优先关系的有向图 C4 C5 C1 C2 C3 C7 C12 C8 C6 C9 C10 C11 图7.19中,顶点表示课程,有向边(弧)表示先决条件。若课程i是 课程j的先决条件,则图中有弧i, j。 如下,为图7.19中的有向图的拓扑有序序列的其中两个序列: 1.(C1, C2, C3, C4, C5, C7, C9, C10, C11, C6, C12, C8) 2.(C9, C10, C11, C6, C1, C12, C4, C2, C3, C5, C7, C8) (3)拓扑排序 ①算法思想: 1.在有向图中选一个没有前驱的顶点且输出之。 2.从图中删除该顶点和所有以它为尾的弧。 3.重复上述两步,直至全部顶点均已输出,或者当前图中步存在 无前驱的顶点为止。 ②算法实现: 针对上述操作,采用邻接表作有向图的存储结构,且在头结点中 增加一个存放顶点入度的数组(indegree)。入度为0的顶点即为没有 前驱的顶点,删除顶点及以它为弧的操

文档评论(0)

骨干 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档