数据结构ppt().ppt

数据结构ppt()

第五章 图 5.1 基本概念 5.1 基本概念 5.1 基本概念 5.1 基本概念 5.1 基本概念 5.1 基本概念 5.1 基本概念 5.2 图的存储结构 5.2 图的存储结构 5.2 图的存储结构 5.2 图的存储结构 5.2 图的存储结构 5.2 图的存储结构 5.2 图的存储结构 5.2 图的存储结构 5.3 图的遍历算法及其应用 5.3 图的遍历算法及其应用 5.3 图的遍历算法及其应用 5.3 图的遍历算法及其应用 5.3 图的遍历算法及其应用 5.3 图的遍历算法及其应用 5.3 图的遍历算法及其应用 5.3 图的遍历算法及其应用 5.3 图的遍历算法及其应用 5.3 图的遍历算法及其应用 5.3 图的遍历算法及其应用 5.3 图的遍历算法及其应用 5.3 图的遍历算法及其应用 5.4 最小生成树 5.4 最小生成树 5.4 最小生成树 5.4 最小生成树 5.4 最小生成树 5.4 最小生成树 5.5 拓扑排序 5.5 拓扑排序 5.5 拓扑排序 5.5 拓扑排序 5.5 拓扑排序 5.6 最短路径 5.6 最短路径 5.6 最短路径 5.6 最短路径 5.6 最短路径 5.6 最短路径 5.6 最短路径 5.6 最短路径 5.6 最短路径 5.6 最短路径 5.6 最短路径 5.4.1 Prim算法 (1) 将所指定的起点作为已选顶点。 (2) 在满足条件“一端已选,另一端未选”的边中选择一条最小边,并将该边的未选端点设置为已选。 (3) 重复(2),直到所有顶点成为已选顶点为止(选择n-1条边)。 1 2 3 4 10 8 6 3 1 2 3 4 3 10 6 5.4.1 Prim算法 Prim算法的简要描述(设起点为v0): 设置各候选边(v0,vi); for(i=1; i=n;i++) { 从候选边中找出权值最小的边(v,vk); //假设v为已选边 将vk设置为已选顶点; 调整候选边集合; //重新设置已选顶点和未选顶点之间的边的集合 } 5.4.2 Kruskal 算法 Kruskal算法是一种按照网中边的权值递增的顺序构造最小生成树的方法。 基本思想是: (1) 初始设置最小生成树T由图G中的n个顶点构成,顶点之间没有一条边。 (2) 按边的权值由小到大的顺序依次取边,所取得边和已选边不构成回路。 (3) 重复(2),直至选取n-1条边。 5.4.2 Kruskal 算法 1 2 3 4 10 8 6 3 1 2 3 4 3 10 6 5.5.1 问题描述 所有的工程或者某种流程可以分为若干个小的工程或阶段,这些小的工程或阶段就称为活动。 若以图中的顶点来表示活动,有向边表示活动之间的优先关系,则这样活动在顶点上的有向图称为AOV网。 在AOV网中,若从顶点i到顶点j之间存在一条有向路径,称顶点i是顶点j的前驱,或者称顶点j是顶点i 的后继。若i,j是图中的有向边,则称顶点i是顶点j的直接前驱,顶点j 是顶点i的直接后继。 5.5.1 问题描述 为了保证工程得以顺利完成,必须保证AOV网中不出现回路,即构造一个线性序列,满足以下性质: (1)在AOV网中,若顶点Vi 到顶点Vj 存在路径,则在线性序列中顶点Vi优先于顶点Vj; (2)对于网中原来没有优先关系的顶点Vi与顶点Vj,可在线性序列中建立一个先后关系,或者顶点Vi优先于顶点Vj,或者顶点Vj优先于Vi。 满足这样性质的线性序列称为拓扑序列(不唯一)。构造拓扑序列的过程称为拓扑排序。 5.5.2 拓扑排序方法及实现 拓扑排序的方法: (1)选择一个没有前驱的顶点(该顶点的入度为0)并输出;(设置一数组保存各顶点的入度,设置一个栈或队列存放入度为0的顶点) (2)删去该顶点及从该顶点发出的全部有向边;(可通过将该顶点的所有后继顶点的入度减1来实现) (3)重复(1)、(2),直到找不到入度为0的顶点为止。 这样操作的结果有两种:一种是网中全部顶点都被输出,这说明网中不存在有向回路;另一种就是网中顶点未被全部输出,剩余的顶点均无前驱顶点,这说明网中存在有向回路。 5.5.2 拓扑排序方法及实现

文档评论(0)

1亿VIP精品文档

相关文档