图--拓扑排序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0
1
2
3
4
6
5
【练习】 写出下图所示网所有可能的拓扑有序序列。
【练习答案】 写出下图所示网所有可能的拓扑有序序列。
可能的拓扑有序序列有: v1,v2,v3 ,v4,v5 ,v6 ; v1,v2,v3 ,v5,v4 ,v6 ; v1,v2,v4,v3 ,v5 ,v6 ; v2,v1,v4,v3 ,v5 ,v6 ; v2,v1,v3,v4 ,v5 ,v6 ; v2,v1,v3,v5 ,v4 ,v6 ; v2,v4,v1,v3 ,v5 ,v6 ;
6.6.1 AOV网
例如:某工程可分为V0、V1、V2、V3、V4、V5、V6,7 个子工程,工程流程可用如下AOV网表示。其中顶点:表 示子工程(也称活动),有向边:表示子工程间的顺序关 系。
V2
V0 V1 V3 V5
V4
V6
6.6 拓扑排序
对工程,人们关心的问题: 工程能否顺序进行,即工程流程是否“合理” ? 假设下图表示一个工程的施工图,判断该工程是 否合理? V0 V0 V1 V1
6
1
3
5
网中的顶点表 示各门课程的教学 活动,有向边表示 各门课程的制约关 系。
Fra Baidu bibliotek
6.6 拓扑排序
6.6.1 AOV网
在有向图中若以顶点表示活动,用有向边表示 活动之间的优先关系,则这样的有向图称为以顶点 表示活动的网(Activity On Vertex Network), 简称AOV网。 应用: 工程流程、生产过程中各道工序的流 程、程序流程、课程的流程
•对于某个AOV网, 如果它的拓扑有序序列被构 造成功,则该网中不存在有向回路,其各子工程 可按拓扑有序序列的次序进行安排。
6.6.2 拓扑排序
【例如】:对于下列有向图 B A C D A C
B
D
可求得拓扑有序序列: 不能求得它的拓扑有序序列。
ABCD
或 ACBD
因为图中存在一个回路 {B, C, D}
V2
V5
V3
V4
能否给出一个活动之间的优先关系的有序序列?
6.6.2 拓扑排序
V0 V0
V2
V5
•拓扑排序:构造拓扑有序序列的过程。 V1 V1 V3 何谓“拓扑有序序列”?
V4
它是由AOV网中的所有顶点构成的一个线性序列, 在这个序列中体现了所有顶点间的优先关系。 •一个AOV网的拓扑有序序列并不是惟一的。
6.6.2 拓扑排序
V0 V0
V2
V5
如何进行拓扑排序? [拓扑排序的步骤] V1 V1 V3
V4
1)从有向图中选取一个没有前驱的顶点,并输出之; 2)从有向图中删去此顶点以及所有以它为尾的弧; 重复上述两步,直至图空,或者图不空但找不到 无前驱的顶点为止。
【注意】 这样操作后的结果有两种:
一种是网中全部顶点均被输出,说明网中不存在有向回 路; 另一种是网中顶点未被全部输出,剩余的顶点均有前 驱顶点,说明网中存在有向回路。
第6章
6.1 图的基本术语 6.2 图的存储结构 6.3 图的遍历 6.4 最小生成树 6.5 最短路径 6.6 拓扑排序 6.7 关键路径
图
6.6 拓扑排序
• AOV网 • 拓扑排序 • AOE网
• 关键路径
6.6 拓扑排序
0
2
4
课程代号 课程名称 先修课程 0 高等数学 无 1 程序设计基础 无 2 C程序设计 0,1 3 离散数学 0 4 数据结构 1,2,3 5 编译方法 3,4 6 操作系统 4
【实例】--写出下图的拓扑排序序列
c
a
g
d
e
b
h
f
序列:
a
b h c d g f
e
【练习】 写出表示课程以及 课程的制约关系的 AOV网的一个拓扑有 序序列。
课程代号 课程名称 先修课程 0 高等数学 无 1 程序设计基础 无 2 C程序设计 0,1 3 离散数学 0 4 数据结构 1,2,3 5 编译方法 3,4 6 操作系统 4