8.1 图的基本概念,第8章 图,8.2 图的存储结构,8.3 图的遍历,8.4 生成树和最小生成树,8.5 最短路径,8.6 拓扑排序,本章小结,8.7 AOE网与关键路径,8.1 图的基本概念 8.1.1 图的定义 图(Graph)G由两个集合V(Vertex)和E(Edge)组成,记为G=(V
数据结构第7章图Tag内容描述:
1、8.1 图的基本概念,第8章 图,8.2 图的存储结构,8.3 图的遍历,8.4 生成树和最小生成树,8.5 最短路径,8.6 拓扑排序,本章小结,8.7 AOE网与关键路径,8.1 图的基本概念 8.1.1 图的定义 图(Graph)G由两个集合V(Vertex)和E(Edge)组成,记为G=(V,E),其中V是顶点的有限集合,记为V(G),E是连接V中两个不同顶点(顶点对)的边的有限集合,记为E(G)。,在图G中,如果代表边的顶点对是无序的,则称G为无向图,无向图中代表边的无序顶点对通常用圆括号括起来,用以表示一条无向边。 如:无向边 ( V1 , V2) 如果表示边的顶点对是有序的,则称G为有向图,在有向图中代表。
2、1,第七章 树与森林,教学内容:7.1 树的概念与表示7.2 基本操作与存储7.3 树、森林与二叉树的转换7.4 树或森林的遍历7.5 树的应用 教学目的: 深刻理解树的定义、术语; 领会并掌握树的各种存储结构; 熟练掌握森林与二叉树间的相互转换; 领会树和森林的遍历; 了解树的简单应用。,2,教学重点: 树的存储结构; 森林与二叉树的转换。 教学难点: 森林与二叉树的转换; 判定树; 等价关系与等价类问题。 学时安排: 4学时,3,7.1 树的概念与表示,7.1.1 树的定义及相关术语7.1.2 树的表示,4,7.1.1 树的定义及相关术语,1树的定义树(Tree)是n。
3、第七章 图,内容提要,本课主题: 图的定义与术语,图的存储结构,图的遍历,最小生成树,关键路径,最短路径 教学目的: 掌握图的定义及常用术语、图的存储方法、图的遍历,了解最小生成树、关键路径、最短路径 教学重点: 图的常用术语,图的数组表示及邻接表表示法,图的遍历 教学难点: 图的邻接表表示法,最小生成树,关键路径,最短路径,7.1 图的定义和术语,一、图的定义 图是一种数据元素间为多对多关系的数据结构,加上一组基本操作构成的抽象数据类型。,图的ADT定义,ADT Graph 数据对象V :V是具有相同特性的数据元素的集合,称为。
4、第七章 图,【课前思考】,同学们一定可以画出如下所示类似的图形。,同时可通行的路为:(AB,BC,CA),(AB,BC,BA),(AB,AC,CA),(CB,CA,BC),【学习目标】,1领会图的类型定义。 2熟悉图的各种存储结构及其构造算法,了解各种存储结构的特点及其选用原则。 3熟练掌握图的两种遍历算法。 4理解各种图的应用问题的算法。,【重点和难点】,图的应用极为广泛,而且图的各种应用问题的算法都比较经典,因此本章重点在于理解各种图的算法及其应用场合。,【知识点】,图的类型定义、图的存储表示、图的深度优先搜索遍历和图的广度优先搜索遍历、无向网的最小。
5、基本概念图的存储结构图的遍历生成树最短路径拓扑排序,第7章 图,7.1 图的基本概念,图定义 图是由顶点集合(vertex)及顶点间的关系 集合组成的一种数据结构:Graph( V, E ) 其中 V = x | x 某个数据对象 是顶点的有穷 非空集合;E = (x, y) | x, y V 是顶点之间关系的有穷集合,也叫做边(edge)集 合。,有向图与无向图 若图G中的每条边都是有方向的,则称G为有向图。有向边也称为弧。若图G中的每条边都是没有方向的,则称G为无向图。 完全图 对有n个顶点的图,若为无向图且边数为n(n-1)/2,则称其为无向完全图;若为有向图且边数为n(n-1) ,。
6、第 7 章 图一、单项选择题1在一个无向图 G 中,所有顶点的度数之和等于所有边数之和的_倍。Al/2 B1C2 D42在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的_倍。Al/2 B1 C2 D43一个具有 n 个顶点的无向图最多包含_条边。An Bn1Cn-1 Dn(n-1)/24一个具有 n 个顶点的无向完全图包含_条边。An(n-l) Bn(n+l) Cn(n-l)/2 Dn(n-l)/25一个具有 n 个顶点的有向完全图包含_条边。An(n-1) Bn(n+l) Cn(n-l)/2 Dn(n+l)/26对于具有 n 个顶点的图,若采用 邻接矩阵表示,则该矩阵的大小为_。An Bnn Cn-1 D(n-l) (n-l)7无向图的邻接矩阵是一个_。
7、 第 7 章 图一.选择题 1.A 2.B 3.A 4.B 5.D 6.1B 6.2D 7.1B 7.2C 8.A 9.A 10.1C10.2BDE 11.B 12.1B 12.2B 12.3D 13.B 14.C 15.C 16.D 17.D 18.1C 18.2C19.AB 20.B 21.1C 21.2A 21.3B 21.4A 22.A 23.A 24.D 25.A 26.A 27.B28.D 29.B 30.A 31.C 32.B 二.判断题1. 2. 3. 4. 5. 6. 7. 8. 9. 10.11. 12.13.14.15.16.17.18.19.20.21.22.23.24.25.26. 27.28.29.30.31. 32.33.。
8、第七章 图,7.1 图的类型定义,7.2 图的存储结构,7.3 图的遍历,7.4 最小生成树,7.5 有向无环图及其应用,7.6 最短路径,7.3 图的遍历,图的遍历:从图中某个顶点出发游历图,访遍图中其余顶点,并且使图中的每个顶点仅被访问一次的过程。 在图中,访问部分顶点后,可能又沿着其他边回到已被访问过的顶点。为保证每一个顶点只被访问一次,必须对顶点进行标记,一般用一个辅助数组 visit0n-1 作为对顶点的标记,当顶点vi未被访问,visiti 值为0;当vi已被访问,则 visiti 值为1。 通常,有两种遍历图的路径:深度优先搜索和广度优先搜索,对无向。
9、1,第七章 图,7.1 图的类型定义,7.2 图的存储结构,7.3 图的遍历,7.4 最小生成树,7.5 有向无环图及其应用,7.6 最短路径,2,其中: V = ei | eiElemSet, i = 1, 2, , n R = VR VR = | v, wV 且 P(v, w) 谓词 P(v, w) 定义了 之间关系的意义或信息。,7.1 图的类型定义,图 是由一个顶点集 V 和一个关系集 R构成的数据结构。,Graph = ( V , R ),3,7.2 图的存储表示,一、图的数组(邻接矩阵)存储表示,二、图的邻接表存储表示,三、有向图的十字链表存储表示,四、无向图的邻接多重表存储表示,4,一、邻接矩阵,在存储图的结构时,至少要保存两类信息: 。
10、1,数据结构与应用,马石安 魏文平 编著,2,内容简介,本教材采用面向对象的观点讨论数据结构技术,并以C+类模板作为算法描述工具。 教材在简要回顾C+程序设计概念的基础上,全面系统地介绍了线性表、栈和队列、串、数组和广义表、树和二叉树及图等数据结构,讨论了常用的查找和排序技术,对每一种数据结构,除了详细阐述其逻辑结构、存储结构和相关算法外,还对所有算法进行了C+语言实现和评价,并给出了应用实例。 教材附录给出了上机实验内容。,3,教材目录,第0章 C+程序设计语言预备知识0.1 一个简单C+语言程序 0.2 指针与引用 0.3 动态存。
11、1,第七章 图,7.1 图的类型定义,7.2 图的存储结构,7.3 图的遍历,7.4 最小生成树,7.5 有向无环图及其应用,7.6 最短路径,2,对比线性结构、树形结构和图状结构的特点,在线性表中,数据元素之间仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继(一个对一个); 在树形结构中,数据元素之间有着明显的层次关系,并且每一层的数据元素可能和下一层中多个元素相关,但只能和上一层中一个元素相关(一个对多个); 在图形结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关(多个对多个)。,3,其中: V = ei | ei。
12、第 七 章 图71基本概念和术语 一、图的定义图是一种数据元素间为多对多关系的数据结构,加上一组基本操作构成的抽象数据类型。 ADT Graph数据对象V :V是具有相同特性的数据元素的集合,称为顶点集。数据关系R:R=VRVR=|v,w(-V且P(v,w),表示从v到w的弧,谓词 P(v,w)定义了弧的意义或信息基本操作P:CreateGraph(初始条件:V是图的顶点集,VR是图中弧的集合。操作结果:按V和VR的定义构造图G,退出,DestroyGraph( 初始条件:图G存在,v是G中某个顶点 操作结果:返回v的第一个邻接顶点。若顶点在G中没有邻接顶点,则返回“空”,NextAdjVex(G,。
13、第7章 图,7.1 图的定义与基本术语 7.2 图的存储结构 7.3 图的遍历 7.4 图的连通性问题 7.5 有向无环图的应用 7.6 最短路径,图是一种较线性表和树更为复杂的数据结构。 线性结构是研究数据元素之间的一对一关系。在这种结构中,除第一个和最后一个元素外,任何 一个元素都有唯一的一个直接前驱和直接后继。 树结构是研究数据元素之间的一对多的关系 。在这种结构中,每个元素对下 (层)可以有0个或多个元素相联系,对上(层)只有唯一的一个元素相关,数据元素之间有明显的层次关系。,图结构是研究数据元素之间的多对多的关 系。在这种结构中。
14、2019/4/28,1,7.1 图7.2 图的存储结构 7.3 图的实现7.4 图的遍历7.5 最小生成树7.6 最短路径,第7章 图,2019/4/28,2,7.1.1 图的定义及运算 一、图的定义:图(graph)是由两个集合V和E所限定的一种数据结构,记作 G=(V,E) 其中:V是构成图的顶点的非空有限集, E是表示顶点之间关系的边的集合。,7.1 图的基本概念,2019/4/28,3,(4)子图:假设有两个图G = ( V ( G ) , E ( G ) )和G= ( V ( G ) , E ( G ) ) 。若V(G)V(G)且E(G)E(G),则称G是G的。,(1)无向图:边没有方向性; (2)有向图:边有方向性。 (3)完全图:图任意两个顶点都有一。
15、图的定义和术语 图的存储结构 图的遍历与连通性 最小生成树 活动网络 最短路径,第七章 图,7.1 图的定义和术语,图形结构的形式定义 图是由顶点集合(vertex)及顶点间的关系集合组成的一种数据结构:Graph( V, R ) 其中:V = x | x 某个数据对象 , 是顶点的有穷非空集合;R边的有限集合R = (x, y) | x, y V 无向图 或R = | x, y V & Path (x, y)有向图是顶点之间关系的有穷集合,也叫做边(edge)集合。Path (x, y)表示从 x 到 y 的一条单向通路, 它是有方向的。x弧尾,y弧头,有向图与无向图 有向图中:边用表示,且x与y是有序的。a. 有向图中。
16、第七章 图,计算机与信息技术学院,2019/5/22,数据结构 page 2,信阳师范学院计算机与信息技术学院,第七章 图,2019/5/22,数据结构 page 3,信阳师范学院计算机与信息技术学院,7.1 基本术语,图是顶点集和边集组成的二元组G=,E中每条边是V中一对顶点(u,v)间的联系,如果是无序对,那么称该图为无向图,否则为有向图。 邻接点:边的两个顶点互为邻接点 关联边:若有边e= (v, u), 则称顶点v、u关联边e,2019/5/22,数据结构 page 4,信阳师范学院计算机与信息技术学院,顶点V的度 = 与V相关联的边的数目在有向图中: 顶点V的出度 = 以V为起点有向边数顶。
17、第七章 图,7.1 图的定义和术语,7.2 图的存储结构,7.3 图的遍历,作 业,7.1 图的定义和术语,图:是一种非线性数据结构。结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。 顶点:图中的数据元素(如右图的ABCD各点) 有向图:图的顶点偶对之间是有序的(如图) 弧:有向图中,从一个顶点到另一个顶点的有向线段。例如为一弧段,A称为弧尾(初始点),B称为弧头(终段点)。 无向图:图的顶点偶对之间是无序的。,7.1 图的定义和术语,如右图,有向图G1可形式地表示为:G1=(V1,A1) 其中:V1=A, B, C, DA1=,7.1 图的定义和术。
18、图由一个顶点集和弧集构成,通常写作: Graph=(V,VR)V:是顶点的有穷非空集合。VR :是两个顶点间的关系集合 :表示从顶点 v 到顶点 w 的一条弧,其中顶点 v 被称为弧尾,顶点 w 被称作弧头。由于弧是有方向的,故称有向图。 若VR 必有VR,即VR是对称的,则称 无序对(v,w) 为顶点 v 和顶点 w 之间存在一条边。由顶点集和边集构成的图称作无向图。,7.1 图的类型定义,第七章 图,例如下列定义的有向图如右图所示。 G1=(V1, VR1) 其中:V1 = A, B, C, D, E VR1=, ,例如下列定义的无向图如右所示。 G2=(V2, VR2) 其中:V2=A, B, C, D, E, F VR2。
19、 基本术语, 图的存储结构, 图的遍历, 最小生成树 最短路径问题, AOV网与拓扑排序, AOE网与关键路径,基本术语,(b). 这条边依附于顶点vi 和vj。,(vi, vj) vi, vj ,关于一条边或弧的表示方法:,(a). 顶点vi 与vj 是这条边的两个邻接点。,其中V1 = v1, v2, v3, v4 E1 = (v1,v2), (v1,v3),(v1,v4), (v2,v3), (v2,v4), (v3,v4) ,G1=(V1, E1),其中V2 = v1, v2, v3, v4 E2 = , , ,G2=(V2, E2),无向图:,有向图:,与边有关的数据称为权,边上带权的图称为网络。,对于(vi,vj)E,必有(vj,vi)E,并且偶对中顶点的前后顺序无关。,若E是顶点的有序偶对。,。