第七章——图及其应用1教程文件.ppt

  1. 1、本文档共118页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
定义 AOV网:用顶点表示活动,用弧表示活动间优先关系的有向图称为顶点表示活动的网(Activity On Vertex network),简称AOV网。 若<vi,vj>是图中有向边,则vi是vj的直接前驱;vj是vi的直接后继。 AOV网中不允许有回路,否则意味着某项活动以自己为先决条件。 拓扑排序:把AOV网络中各顶点按照它们相互之间的优先关系排列成一个线性序列的过程。 检测AOV网中是否存在环方法:对有向图构造其顶点的拓扑有序序列,若网中所有顶点都在它的拓扑有序序列中,则该AOV网必定不存在环。 拓扑排序的方法 (1)在有向图中选一个没有前驱的顶点且输出之; (2)从图中删除该顶点和所有以它为尾的弧; (3)重复上述两步,直至全部顶点均已输出;或者当图中不存在无前驱的顶点为止 课程代号 课程名称 先修棵 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 无 C1 C1,C2 C1 C3,C4 C11 C3.C5 C3,C6 无 C9 C9 C1,C9,C10 程序设计基础 离散数学 数据结构 汇编语言 语言的设计和分析 计算机原理 编译原理 操作系统 高等数学 线性代数 普通物理 数值分析 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 拓扑序列:C1--C2--C3--C4--C5--C7--C9--C10--C11--C6--C12--C8 或 :C9--C10--C11--C6--C1--C12--C4--C2--C3--C5--C7--C8 注意:一个AOV网的拓扑序列不是唯一的 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 (1)先选择没有前驱的顶点C1,删除C1和所有以它为尾的弧。 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 (2)选择没有前驱的顶点C2,删除C2和所有以它为尾的弧。 拓扑序列:C1--C2 (3)选择没有前驱的顶点C3,删除C3和所有以它为尾的弧。 拓扑序列:C1--C2--C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C5 C6 C7 C8 C9 C10 C11 C12 (4)选择没有前驱的顶点C4,删除C4和所有以它为尾的弧。 拓扑序列:C1--C2--C3--C4 (5)选择没有前驱的顶点C5,删除C5和所有以它为尾的弧。 拓扑序列:C1--C2--C3--C4—C5 C6 C8 C11 C12 拓扑序列:C1-C2-C3-C4-C5-C7-C9-C10-C11 (9) C6 C7 C8 C9 C10 C11 C12 拓扑序列:C1-C2-C3-C4-C5-C7 (6) C6 C8 C9 C10 C11 C12 拓扑序列:C1-C2-C3-C4-C5-C7-C9 (7) C6 C8 C10 C11 C12 拓扑序列:C1-C2-C3-C4-C5-C7-C9-C10 (8) C6 C8 C12 拓扑序列: C1-C2-C3-C4-C5-C7-C9-C10-C11-C6 (10) C8 C12 拓扑序列: C1-C2-C3-C4-C5-C7-C9-C10-C11-C6-C12 (11) C8 拓扑序列: C1-C2-C3-C4-C5-C7-C9-C10-C11-C6-C12-C8 (12) 那么如何进行拓扑排序?步骤如下:  (1) 在AOV网中选择一个没有前驱的顶点并输出;  (2) 从AOV网中删除该顶点以及从它出发的弧;  重复以上两步直至AOV网变空(即已输出所有顶点) 或者剩余子图中不存在没有前驱的顶点。 后一种情况则说明该AOV网中含有向环。 如右所示AOV网的拓扑排序的过程如动画所示。 图中存在一个有向环,则在拓扑排序输出顶点c之后就 找不到"没有前驱"的顶点了 没有前驱的顶点 ?? 入度为零的顶点 删除顶点及以它为尾的弧 ?? 弧头顶点的入度减1 算法实现 (1)以邻接表作存储结构; (2)把邻接表中所有入度为0的顶点进栈,便于查询; (3)栈非空时,输出栈顶元素Vj并退栈;在邻接表中查找Vj的直接后继Vk,把Vk的入度减1;若Vk的入度为0则进栈; (4)重复上述操作直至栈空为止。若栈空时输出的顶点个数不是n,则有向图有环;否则,拓扑排序完毕 3 2 1 0 4 算法描述 例 1 2 3 4 5 6 0 1 2 2 indegree firstarc 5 5 4 3 ^ ^ ^ adjvex nexta

文档评论(0)

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

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

1亿VIP精品文档

相关文档