第7章 图有向无环图.pptVIP

  • 4
  • 0
  • 约5.37千字
  • 约 18页
  • 2017-01-01 发布于重庆
  • 举报
数据结构电子讲稿 数据结构! 7.5 有向无环图及其应用 3、关键路径 7.5 有向无环图及其应用 7.5 有向无环图及其应用 * 1、何为有向无环图(DAG 图) 实例 B E F G L F G B E F G L F G B E F G L F G 有向树 DAG图 有向图(含环) 用途:描述工程项目或系统进行的工具 AOV 网络:定义结点为活动,有向边的指向表示活动执行的次序。 AOE网络:定义结点为事件,有向边的指向表示事件的执行次序。单位是时间(时 刻)。有向边定义为活动,它的权值定义为活动进行所需要的时间。 A B A B 10 2、拓扑排序(Topological Sort) 偏序:若集合 X 上的关系 R 是传递的、自反的、反对称的, 则称 R 是集合 X 上的偏序 关系。 全序:若关系 R 是集合 X 上的偏序关系,如果对于每个 x, y 属于 X,必有 x R y 或 y R x ,则称 R 是集合 X 上的全序关系。 复习: 拓扑排序:如果有一个序列 A = a1,a2,a3…………an 是集合 X 上的元素的一个序列, 且当 i j 时, (ai , aj )属于 R , 则称 A 是相对于 R 拓扑排序的。 注意:且当表示(ai , aj )属于 R, i j 同时存在 i 和 j 是元 素 ai 和 aj 在序列 A 中的序号。 aj ai 用 表示(ai , aj )属于 R, i j 为了表示的方便,令 为前件,而 为后件。前件的序号一定要 小于后件。否则将不满足拓扑排序的定义。 ai aj 用途:描述工程项目或系统进行的次序 AOV 网络:定义结点为活动,有向边的指向表示活动执行的次序。 实例:下述集合 M 代表课程的集合,其中,1代表数学, 2代 表程序设计,3代表离散数学,4代表汇编程序设计, 5代表数据结构,6代表结构程序设计, 7代表编译原理。 关系 R 课程学习的先后关系,如数学必须在离散数学之 前学习。要求排一张学习的先后次序表。 1 3 2 7 5 6 4 第一个输出的结点:必须无前件。 后件:必须等到它的前件输出之后输出。 无前件及后件的结点:任何时候都可输出。 序列:1、3、2、4、6、5、7 合乎拓扑排序的要求 序号 1、2、3、4、5、6、7 合乎拓扑排序的要求 序列:3、1、2、4、6、5、7 不合乎拓扑排序的要求 元素 3 的序号 1(后件) 元素 1 (前件) 的序号 2 1 3 2 7 5 6 4 1 3 2 4 6 5 7 1 3 2 7 5 6 4 可交换 可交换 可交换 算法(使用邻接矩阵): 1 3 2 7 5 6 4 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 2 3 4 5 6 7 1 2 3 4 5 6 7 算法的执行步骤: 1、找到全为零的第 j 列,输出 j 2、将第 j 行的全部元素置为零 3、找到全为零的第 k 列,输出 k 4、将第 k 行的全部元素置为零 ………………… 反复执行 3、4;直至所有元素输出完毕。 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 算法 (使用邻接表): 1 3 2 7 5 6 4 算法的执行步骤: 1、用一个数组记录每个结点的入度。将入度为零的结点进栈。 2、将栈中入度为零的结点V输出。 3、根据邻接表找到结点V的所有的邻接结点,并将这些邻接结点的入度减一。如果某一结点的入度变为零,则进栈。 4、反复执行 2、3;直至栈空为止。 ………………… 次序执行结束,如果输出结点数等于图的结点总

文档评论(0)

1亿VIP精品文档

相关文档