- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构 第七章 图7.2
* * 7.5????? 有向无环图及其应用 一、有向无环图 二、拓扑排序 三、关键路径 一、有向无环图 7.5????? 有向无环图及其应用 有向无环图(directed acycline graph),简称DAG图,是一个无环的有向图。 有向无环图是描述一项工程或系统的进行过程的有效工具。 对整个工程和系统,人们关心两方面的问题: 工程能否顺利进行--拓扑排序(AOV网); 估算整个工程完成所必须的最短时间--关键路径(AOE网); 二、拓扑排序 1.什么是拓扑排序? 7.5????? 有向无环图及其应用 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 课程代号 课程名称 先修棵 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 程序设计基础 离散数学 数据结构 汇编语言 语言的设计和分析 计算机原理 编译原理 操作系统 高等数学 线性代数 普通物理 数值分析 例 AOV网(Activity On Vertex Network) 用顶点表示活动,用弧表示活动间的优先关系的有向图称AOV网。 7.5????? 有向无环图及其应用 二、拓扑排序 问题提出:学生选修课程问题 顶点——表示课程 有向弧——表示先决条件,若课程i是j的先决条件,则图中有弧i,j 学生应按怎样的顺序学习这些课程,才能无矛盾、顺利地完成学业——拓扑排序 拓扑排序的定义 所谓拓扑序列,就是把AOV网中的所有顶点排成一个线性序列,该序列满足如下条件:若AOV网中存在弧vi,vj,则在该序列中,vi必位于vj之前。 构造AOV网的拓扑序列的操作被称为拓扑排序。 7.5????? 有向无环图及其应用 二、拓扑排序 a.在有向图中选一个没有前驱(入度为0)的顶点且输出之。 b.从图中删除该顶点及所有以它为尾的弧。 c.重复执行a和b,直到全部顶点均已输出,或者当图中不存在无前驱的顶点为止。 7.5????? 有向无环图及其应用 二、拓扑排序 2.如何进行拓扑排序? 示例 拓扑序列:v0-v3-v2-v4-v1 7.5????? 有向无环图及其应用 二、拓扑排序 v0-v2-v3-v4-v1 v0-v2-v3-v1-v4 v0-v2-v1-v3-v4 v0-v3-v2-v1-v4 结论:一个AOV网的拓扑序列不是唯一的 a. 采用邻接表作有向图的存储结构,且在头结点增加一 个存放顶点入度的分量(indegree)。 7.5????? 有向无环图及其应用 二、拓扑排序 3. 拓扑排序算法的实现 b. 把邻接表中所有入度为0的顶点进栈 c. 栈非空时,输出栈顶元素Vj并出栈;在邻接表中查 找Vj的直接后继Vk,把Vk的入度减1,即indegree[k]-1; 若Vk的入度为0则进栈。 重复c操作直至栈空为止。 若栈空时输出的顶点个数不是n,则有向图有环;否则,拓扑排序完毕。 7.5????? 有向无环图及其应用 二、拓扑排序 算法描述 例 1 2 3 4 5 6 输出序列:6 1 3 2 4 5 0 1 2 2 indegree first 4 4 3 2 ^ ^ ^ adjvex next 3 ^ 1 4 ^ 1 3 0 1 2 3 4 5 6 ^ 0 1 2 3 4 5 邻接表的存储表示 表结点: typedef struct ArcNode { int adjvex; //邻接点域,存放与Vi邻接的点在表头数组中的位置 struct ArcNode *nextarc; //链域,指示下一条边或弧 }ArcNode; adjvex nextarc 头结点: typedef struct VNode { vertextype data; //存放顶点信息 int indegree; //存放顶点的度 ArcNode *firstarc; //指示第一个邻接点 }Vnode,AdjList[MAX_VERTEX_NUM]; data firstarc 邻接表存储结构:typedef struct{ AdjList vertices;
您可能关注的文档
最近下载
- GBZ40846-2021 工程咨询 基本术语 (2).pdf VIP
- 机械制图--机械制图基础知识.ppt VIP
- 疑难伤口MDT全面管理新理念题库答案 - 2025年华医网继续教育.docx VIP
- 瑞升华蒸汽机械再压缩(MVR)蒸发器——技术交流课件.ppt VIP
- 《瑞升华蒸汽机械再压缩MVR蒸发器——技术交流.ppt VIP
- PICO384非制冷红外焦平面驱动成像方案研究.PDF VIP
- Q 320481 DWT002-2016_机械蒸汽再压缩(MVR)蒸发器.pdf VIP
- GB50868-2013 建筑工程容许振动标准.pdf VIP
- 2025年军事职业测试题及答案.doc VIP
- 学校食堂管理规章制度.docx VIP
文档评论(0)