- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程的内容 第7章 图 7.1 图的基本术语 例:判断下列4种图形各属什么类型? 证明: 稀疏图:稠密图: 带权图: 邻接点: 简单路径: 图的抽象数据类型 7.2 图的存储结构 图的特点: 1. 邻接矩阵(数组)表示法 例2 :有向图的邻接矩阵如何表示? 例3 : 有权图(即网络)的邻接矩阵如何表示? 图的邻接矩阵在机内如何表示? (参见教材P161) 例:用邻接矩阵生成无向网的算法(参见教材P162) 2. 邻接表(链式)表示法 例1:无向图的邻接表如何表示? 例3:已知某网的邻接(出边)表,请画出该网络。 邻接表存储法的特点: 讨论:邻接表与邻接矩阵有什么异同之处? 图的邻接表在机内如何表示? (参见教材P163) 3. 十字链表表示法 例:画出有向图的十字链表。 十字链表存储结构描述: 4. 邻接多重表表示法 例:画出无向图的邻接多重表 7.3 图的遍历 一、深度优先有哪些信誉好的足球投注网站( DFS ) 深度优先有哪些信誉好的足球投注网站(遍历)步骤: 讨论1:计算机如何实现DFS? 讨论2: DFS算法如何编程? 讨论3:在图的邻接表中如何进行DFS? 讨论4: 邻接表的DFS算法如何编程? DFS 算法效率分析: 二、广度优先有哪些信誉好的足球投注网站( BFS ) 广度优先有哪些信誉好的足球投注网站(遍历)步骤: 讨论1:计算机如何实现BFS? 讨论2: BFS算法如何编程? BFS 算法效率分析: 7.4 图的连通性问题 1.求图的生成树(或生成森林) 例1 :画出下图的生成树 例2:画出下图的生成森林(或极小连通子图) 2. 求最小生成树 典型用途: 讨论:如何求得最小生成树? Kruskal算法示例:对边操作,归并边 普利姆(Prim)算法示例: 归并顶点 7.5 有向无环图及其应用 1. 拓扑排序 2. 求关键路径 1 拓扑排序 在工程实践中,一个工程项目往往由若干个子项目组成,这些子项目间往往有多种关系: ①先后关系,即必须在一子项目完成后,才能开始实施另一个子项目; ②子项目之间无次序要求,即两个子项目可以同时进行,互不影响。 在工厂中,一件设备的生产包括许多工序,各工序之间也存在这两种关系。 学校里某个专业的课程学习,有些课程是基础课,它们可以独立于其它课程,即无前导课程;有些课程必须在一些课程学完后才能开始学。 这些类似的问题都可以用有向图来表示,我们把这些子项目、工序、课程看成一个个顶点称之为活动(Activity)。 如果从顶点Vi到Vj之间存在有向边 Vi,Vj,则表示活动i必须先于活动j进行。这种图称做顶点表示活动的网络(Activity On Vertex network,简称AOV网络)。 例如表5-6-1是某校计算机专业的课程及其相互之间的关系,它对应的AOV网络如图5-6-1所示。 图5-6-1(a) AOV网络 在AOV网络中,如果顶点Vi的活动必须在顶点Vj的活动以前进行,则称Vi为Vj的前趋顶点,而称Vj为Vi的后继顶点。这种前趋后继关系有传递性。 AOV网络中一定不能有有向环路。例如在图5-6-1(b)那样的有向环路中,V2是V3的前趋顶点,V1是V2的前趋顶点,V3又是V1的前趋顶点,环路表示顶点之间的先后关系进入了死循环。 因此,对给定的AOV网络首先要判定网络中是否存在环路,只有有向无环路网络在应用中才有实际意义。 图5-6-1(b) 有向环路 所谓“拓扑排序”就是将AOV网络中的各个顶点(各个活动)排列成一个线性有序序列,使得所有要求的前趋、后继关系都能得到满足。 由于AOV网络中有些顶点之间没有次序要求,它们在拓扑有序序列中的位置可以任意颠倒,所以拓扑排序的结果一般并不是唯一的。 通过拓扑排序还可以判断出此AOV网络是否包含有有向环路,若有向图G所有顶点都在拓扑排序序列中,则AOV网络必定不包含有有向环路。 拓扑排序方法 (1) 在AOV网中选择一个没有前驱(即入度为0)的顶点,并把它输出; (2) 从网络中删去该顶点和从该顶点发出的所有有向边; (3) 重复执行上述两步,直到网中所有的顶点都被输出 (此时,原AOV网络中的所有顶点和边就都被删除掉了)。 如果进行到某一步,无法找到无前趋的顶点,则说明此AOV网络中存在有向环路,遇到这种情况,拓扑排序就无法进行了。 图5-6-2 AOV网及拓扑序列的产生过程 为了实现拓扑排序,针对上述两个步骤,采用邻接表作为有向图的存储结构,并且在表结点中增设一个入度,存放顶点的入度。例如图5-6-2种的AOV网的邻接表如图5-6-3(a)所示。这样,入度域为零的表结点及时无前驱的顶点,删除该顶点及它为尾的弧的操作,则可以转换为将它的所有弧头顶点的入度减1来实现 3.各项作业之间的关系及它们在网络图上的表达方式如下: 作业a结束后可以开
文档评论(0)