数据结构第七章图.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《数据结构第七章图.ppt》由会员分享,可在线阅读,更多相关《数据结构第七章图.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构课件第七章图现在学习的是第1页,共76页7.1 7.1 7.1 7.1 图的定义和术语图的定义和术语图的定义和术语图的定义和术语 1图的定义图的定义定义:图(定义:图(Graph)是由)是由非空非空的的顶点集合顶点集合和一个描述顶和一个描述顶点之间关系点之间关系(边或者弧)(边或者弧)的集合组成。的集合组成。其二元组定义为:其二元组定义为:G(V,E)Vvi|viDataObjectE(vi,vj)|vi,vjV且且P(vi,vj)其中,其中,G表示一个图,表示一个图,V是图是图G中顶点的集合中顶点的集合,E是图是图G中边的集合。中边的集合。集合集合E可以是空集,若可以是空集,若E为空
2、,则该图只有顶点而没有为空,则该图只有顶点而没有边。边。现在学习的是第2页,共76页图的应用举例例例1 1 交通图(公路、铁路)交通图(公路、铁路)顶点顶点:地点:地点 边:边:连接地点的公路连接地点的公路例例2 2 电路图电路图 顶点顶点:元件:元件 边:边:连接元件之间的线路连接元件之间的线路例例3 3 各种流程图各种流程图 如产品的生产流程图如产品的生产流程图 顶点顶点:工序:工序 边:边:各道工序之间的顺序关系各道工序之间的顺序关系V0V0V4V4V3V3V1V1V2V2V0V0V2V2V3V3V1V1现在学习的是第3页,共76页2图的相关术语图的相关术语n 有向图和无向图有向图和无向
3、图在在图图中中,若若用用箭箭头头标标明明了了边边是是有有方方向向性性的的,则则称称这这样样的的图图为为有有向向图,否则称为,否则称为无向无向图。在在无无向向图图中中,一一条条边边(x,y)与与(y,x)表表示示的的结结果果相相同同,用用圆括号圆括号表示。例如:表示。例如:G1=(V1,E1)其中:其中:V1=v0,v1,v2,v3,v4E1=(v0,v1),(v0,v3),(v1,v2),(v1,v4),(v2,v3),(v2,v4)无序对无序对(vi,vj)(vi,vj):用连接顶点用连接顶点vivi、vjvj的的线段表示,称为线段表示,称为无向无向边;边;无向图无向图G1G1V0V0V4V
4、4V3V3V1V1V2V2现在学习的是第4页,共76页在在有有向向图图中中,一一条条边边与与表表示示的的结结果果不不相相同同,用用尖尖括括号号表表示示。表表示示从从顶顶点点x出出发发向向顶顶点点y的的边边,x为为始始点点,y为为终终点点,有有向向边边也也称称为为弧弧,x为为弧弧尾尾,y为为弧弧头头,则则表表示示为为一一条条弧弧,而而表示表示y为弧尾,为弧尾,x为弧头的另一条弧为弧头的另一条弧。例如:例如:G2=(V2,E2)其中:其中:V2=v0,v1,v2,v3E2=,有向图有向图G2G2V0V0V2V2V3V3V1V1有序对有序对 :用以用以vivi为起点、以为起点、以vjvj为为终点的有
5、向线段表示,终点的有向线段表示,称为有向边或弧;称为有向边或弧;在图在图G中,若所有边都是无向边,则称中,若所有边都是无向边,则称G为为无向图无向图;在图在图G中,若所有边都是有向边,则称中,若所有边都是有向边,则称G为为有向图有向图;在图在图G中,既有无向边又有有向边,则称中,既有无向边又有有向边,则称G为为混合图混合图;现在学习的是第5页,共76页n 顶点、边、弧、弧头、弧尾顶点、边、弧、弧头、弧尾 图图中中的的数数据据元元素素vi称称为为顶点点(Vertex);P(vi,vj)表表示示在在顶顶点点vi和和顶点顶点vj之间有一条直接连线。之间有一条直接连线。如如果果是是在在无无向向图图中中
6、,则则称称这这条条连连线线为为边(edge);边边用用顶顶点点的的无无序序偶偶对对(vi,vj)来来表表示示,称称顶顶点点vi和和顶顶点点vj互互为为邻接接点点,边边(vi,vj)依依附于顶点附于顶点vi与顶点与顶点vj。在在有有向向图图中中,用用有有序序偶偶对对表表示示从从顶顶点点vi出出发发向向顶顶点点vj的的边边,vi为为始始点点,vj为为终终点点。有有向向边边也也称称为为弧弧(arc),vi为为弧弧尾尾(tail)或或初初始始点点,vj为为弧弧头(head)或或终端端点点,则则表表示示为为一一条条弧弧,而而表示表示vj为弧尾、为弧尾、vi为弧头的另一条弧为弧头的另一条弧。ViViVjV
7、jViViVjVj无向图无向图有向图有向图现在学习的是第6页,共76页n端点和邻接点端点和邻接点在一个无向图中在一个无向图中,若存在一条边若存在一条边(vi,vj),则称则称vi和和vj为此边的为此边的两个端点两个端点,并称它们互为并称它们互为邻接点邻接点(adjacent).在一个有向图中在一个有向图中,若存在一条弧若存在一条弧,则称则称vi和和vj为此弧的为此弧的初始点和终端点初始点和终端点,称它们互为称它们互为邻接点邻接点,称,称vj为为vi得出边邻接点得出边邻接点,vi为为vj的入边邻接点的入边邻接点.G2G2G1G17 71 12 26 65 54 43 35 52 23 36 64
8、 41 1现在学习的是第7页,共76页n 完全图、稠密图、稀疏图完全图、稠密图、稀疏图 无无向向完完全全图:在在一一个个无无向向图图中中,如如果果任任意意两两顶顶点点都都有有一一条条直直接接边边相相连连接接,则则称称该该图图为为无无向向完完全全图图。在在一一个个含含有有n个个顶顶点点的的无无向向完完全图中,有全图中,有n(n-1)/2条边。条边。有向完全有向完全图:在一个有向图中,如果任意两顶点之间都有方向互在一个有向图中,如果任意两顶点之间都有方向互为相反的两条弧相连接,则称该图为为相反的两条弧相连接,则称该图为有向完全图有向完全图。在一个含有。在一个含有n个个顶点的有向完全图中,有顶点的有
9、向完全图中,有n(n-1)条弧。条弧。稠稠密密图、稀稀疏疏图:若若一一个个图图接接近近完完全全图图,称称为为稠稠密密图图;称称边边数数很很少的图为少的图为稀疏图稀疏图。有向完全图有向完全图无向完全图无向完全图3 31 12 23 31 12 2现在学习的是第8页,共76页G2G2顶点顶点2入度:入度:1出度:出度:3顶点顶点4入度:入度:1出度:出度:0G1G1顶点顶点5的度:的度:3顶点顶点2的度:的度:47 71 12 26 65 54 43 35 52 23 36 64 41 1n 度、入度、出度度、入度、出度在图中,一个顶点依附的边或弧的数目,称为该顶点的在图中,一个顶点依附的边或弧的
10、数目,称为该顶点的度度。在。在有向图中,以顶点有向图中,以顶点V为为起点起点的有向边数称为顶点的有向边数称为顶点V的的出度出度(Outdegree),以顶点,以顶点V为为终点终点的有向边数称为顶点的有向边数称为顶点V的的入度入度(Indegree),有向图中某个顶点的,有向图中某个顶点的入度和出度之和入度和出度之和称为称为该顶点的度该顶点的度。现在学习的是第9页,共76页设图设图G的顶点数为的顶点数为n,边或弧数为,边或弧数为e。则图中。则图中所有顶点的度数和所有顶点的度数和=2*e。(每条边对图的(每条边对图的所有顶点的度数都所有顶点的度数都“贡献贡献”2度)度)G2G2G1G17 71 1
11、2 26 65 54 43 35 52 23 36 64 41 1ri为入度,为入度,ci为出度为出度在在有向图有向图中,所有顶点的入度之和等于出度中,所有顶点的入度之和等于出度之和:之和:现在学习的是第10页,共76页n 边的权、网边的权、网与边有关的数据信息称为与边有关的数据信息称为权(weight),权可以代),权可以代表一个顶点到另一个顶点的距离,耗费等。边上带权表一个顶点到另一个顶点的距离,耗费等。边上带权的图称为的图称为网网(network)。)。1 12 25 54 43 3176324 58B BC CA A21435无向带权图和有向带权图无向带权图和有向带权图(a)无向网无向
12、网(b)有向网有向网现在学习的是第11页,共76页n 路径、路径长度路径、路径长度 在无向图中,若存在一个顶点序列在无向图中,若存在一个顶点序列vp,vi1,vi2,vim,vq使得使得(vp,vi1),(),(vi1,vi2),),(,(vim,vq)都属于都属于E(G)E(G),则称其为顶点,则称其为顶点vp到到顶点顶点vq之间的一条之间的一条路径路径(PathPath)。路径上)。路径上边的数目边的数目称为称为路径路径长度度(Path lengthPath length)。在有向图中,路径也是有向的,它是由)。在有向图中,路径也是有向的,它是由若干条弧组成。若干条弧组成。如图所示的无向图
13、如图所示的无向图G1G1中,中,v0v3v2v4v0v3v2v4与与v0v1v4v0v1v4是是从顶点从顶点v0 v0 到顶点到顶点v4 v4 的两条路径,路径长度分别为的两条路径,路径长度分别为3 3和和2 2。V0V0V4V4V3V3V1V1V2V2V0V0V1V1G1G1现在学习的是第12页,共76页n 回路、简单路径、简单回路回路、简单路径、简单回路 起点和终点相同的路径称为起点和终点相同的路径称为回路回路或者或者环(环(CycleCycle)。序。序列中顶点不重复出现的路径称为列中顶点不重复出现的路径称为简单路径路径。除第一个顶。除第一个顶点与最后一个顶点之外,其他顶点不重复出现的回
14、路称为点与最后一个顶点之外,其他顶点不重复出现的回路称为简单回路回路。在图在图G1G1中,中,V0,V1,V2,V3 V0,V1,V2,V3 是简单路径;是简单路径;V0,V1,V2,V4,V1V0,V1,V2,V4,V1不是简单路径;在图不是简单路径;在图G2G2中,中,V0,V2,V3,V0V0,V2,V3,V0是简单回路;是简单回路;V0V0V4V4V3V3V1V1V2V2V0V0V2V2V3V3V1V1无向图无向图G1有向图有向图G2现在学习的是第13页,共76页n 子图子图 若有两个图若有两个图G和和G,G=(V,E),G=(V,E),满足满足如下条件:如下条件:V V,E E,即,
15、即V为为V的子集,的子集,E为为E的的子集,称图子集,称图G为图为图G的的子子图(Subgraph)。例:例:(b)是是(a)的子图,的子图,(c)图不是(图不是(a)的子图。)的子图。V0V0V4V4V3V3V1V1V2V2V0V0V4V4V3V3V1V1V2V2V0V0V3V3V1V1(a)(a)(b)(b)(c)(c)现在学习的是第14页,共76页n 连通图、连通分量连通图、连通分量 在无向图中,在无向图中,如果从一个顶点如果从一个顶点vi到另一个顶点到另一个顶点vj(ij)有路径有路径,则称顶点,则称顶点vi和和vj是是连通的通的。若图中任意两个顶点都是连通。若图中任意两个顶点都是连通
16、的,则称此无向图为的,则称此无向图为连通通图(Connected GraphConnected Graph),否则称为),否则称为非非连通通图。无向图中,无向图中,极大极大的连通子图为该图的的连通子图为该图的连通分量通分量。显然,。显然,任任何连通图的连通分量只有一个何连通图的连通分量只有一个,即它本身,即它本身,而非连通图有多个连而非连通图有多个连通分量。通分量。V0V0 V4V4 V3V3 V1V1 V2V2 V0V0 V2V2 V3V3 V1V1 V5V5 V4V4连通图连通图G1非连通图非连通图G2G2的两个的两个连通分量连通分量现在学习的是第15页,共76页n 强连通图、强连通分量强
17、连通图、强连通分量 对于对于有向图有向图来说,若图中任意一对顶点来说,若图中任意一对顶点vi和和vj(ij)均有从)均有从一个顶点一个顶点vi到另一个顶点到另一个顶点vj的路径,也有从的路径,也有从vj到到vi的路径,则称该的路径,则称该有向图是有向图是强连通通图。有向图的极大强连通子图称为。有向图的极大强连通子图称为强连通分量通分量。显然,显然,任何强连通图的强连通分量只有一个,即它本身,而非任何强连通图的强连通分量只有一个,即它本身,而非强连通图有多个强连通分量强连通图有多个强连通分量。V0V0 V1V1 V2V2 V3V3 V0V0 V1V1 V2V2 V3V3强连通图强连通图G1非强连
18、通图非强连通图G2 V1V1 V0V0 V2V2 V3V3G2的两个强连的两个强连通分量通分量现在学习的是第16页,共76页n 生成树、生成森林生成树、生成森林 所谓连通图所谓连通图G的的生成树生成树,是,是G的包含其的包含其全部全部n个顶点,且以最少个顶点,且以最少的边数使其连通的边数使其连通的一个的一个极小连通子图极小连通子图。它必定包含且仅包含它必定包含且仅包含G的的n-1条边。条边。极小连通子图意思是:该子图是极小连通子图意思是:该子图是G的连通子图,在该子图的连通子图,在该子图中删除任何一条边,子图不再连通。中删除任何一条边,子图不再连通。非连通图的生成树则组成一个非连通图的生成树则
19、组成一个生成森林生成森林。若图中有若图中有n个顶点,个顶点,m个连通分量,则生成森林中有个连通分量,则生成森林中有n-m条边条边。V0V0 V4V4 V3V3 V1V1 V2V2 V0V0 V4V4 V3V3 V1V1 V2V2 V0V0 V4V4 V3V3 V1V1 V2V2连通图连通图G1G1的生成树的生成树现在学习的是第17页,共76页G2G2G1G15 54 42 26 63 31 11 17 73 32 24 46 65 5路径:路径:1,2,3,5,6,3路径长度:路径长度:5简单路径:简单路径:1,2,3,5回路:回路:1,2,3,5,6,3,1简单回路:简单回路:3,5,6,3
20、路径:路径:1,2,5,7,6,5,2,3路径长度:路径长度:7简单路径:简单路径:1,2,5,7,6回路:回路:1,2,5,7,6,5,2,1简单回路:简单回路:1,2,3,1现在学习的是第18页,共76页3、图的运算、图的运算和其它结构一样,图的基本操作也是和其它结构一样,图的基本操作也是查找、查找、插入和删除插入和删除。但在。但在操作中常常需要指出操作中常常需要指出顶点在图中位置顶点在图中位置。从图的逻辑结构的定义来看,图中的从图的逻辑结构的定义来看,图中的顶点之间不存在全序的顶点之间不存在全序的关系关系(即无法将图中顶点排列成一个线性序列),任何一个顶点都可被(即无法将图中顶点排列成一
21、个线性序列),任何一个顶点都可被看成是第一个;另一方面,看成是第一个;另一方面,任一顶点的邻接点之间也不存在次序关系任一顶点的邻接点之间也不存在次序关系。但为了操作方便,我们需要将图中顶点按任意的顺序排列起来(这个但为了操作方便,我们需要将图中顶点按任意的顺序排列起来(这个排列和关系排列和关系E无关)。无关)。由此,所谓由此,所谓顶点在图中的位置顶点在图中的位置指的是该顶点在这个指的是该顶点在这个人为人为的随意排的随意排列中的位置(或序号)。同理可对某个顶点的所有邻接点进行排队,列中的位置(或序号)。同理可对某个顶点的所有邻接点进行排队,在这个排队中自然形成了第在这个排队中自然形成了第1个或第
22、个或第k个邻接点。若某个顶点的邻接个邻接点。若某个顶点的邻接点的个数大于点的个数大于k则称第则称第k1个邻接点为第个邻接点为第k个邻接点的下一个邻接个邻接点的下一个邻接点,而最后一个邻接点的下一个邻接点为点,而最后一个邻接点的下一个邻接点为“空空”。现在学习的是第19页,共76页图的基本操作 1、CreatGraph(&G,V,E)按按V和和E的定义构造图的定义构造图G。2、DestroyGraph(&G)销毁图销毁图G。3、LocateVex(G,u)若若G中存在顶点中存在顶点u,返回其在图中位置,否则返回,返回其在图中位置,否则返回-1。4、GetVex(G,v)在图中找到顶点在图中找到顶
23、点v,并返回顶点,并返回顶点v的相关信息,否则返回空。的相关信息,否则返回空。5、FirstAdjVex(G,v)返回图中顶点返回图中顶点v的第一个邻接顶点,若没有,返回空。的第一个邻接顶点,若没有,返回空。6、NextAdjVex(G,v,w)返回返回v的相对于的相对于w的下一个邻接顶点,若的下一个邻接顶点,若w是是v的最后一个邻接的最后一个邻接点,则返回空。点,则返回空。现在学习的是第20页,共76页7、AddVex(&G,v)在图在图G中增添新顶点中增添新顶点v。8、DelVex(&G,v)在图在图G中,删除顶点中,删除顶点v及所有和其相关的边或弧。及所有和其相关的边或弧。9、AddAr
24、c(&G,v,w)在图在图G中增添一条从顶点中增添一条从顶点v到顶点到顶点w的边或弧。的边或弧。10、DelArc(&G,v,w)在图中删除一条从顶点在图中删除一条从顶点v到顶点到顶点w的边或弧。的边或弧。11、DFS(G,v)在图在图G中,从顶点中,从顶点v出发深度优先遍历图。出发深度优先遍历图。12、BFS(G,v)在图在图G中,从顶点中,从顶点v出发广度优先遍历图。出发广度优先遍历图。图的基本操作 现在学习的是第21页,共76页7.2 7.2 7.2 7.2 图的存储结构图的存储结构图的存储结构图的存储结构 图是一种结构复杂的数据结构,表现在不仅各个顶图是一种结构复杂的数据结构,表现在不
25、仅各个顶点的度可以千差万别,而且顶点之间的逻辑关系也错综点的度可以千差万别,而且顶点之间的逻辑关系也错综复杂。从图的定义可知,一个图的信息包括两部分,即复杂。从图的定义可知,一个图的信息包括两部分,即图中顶点的信息以及描述顶点之间的关系(边或者弧)图中顶点的信息以及描述顶点之间的关系(边或者弧)的信息的信息。因此无论采用什么方法建立图的存储结构,都。因此无论采用什么方法建立图的存储结构,都要完整、准确地反映这两方面的信息。要完整、准确地反映这两方面的信息。图通常有图通常有邻接矩阵、邻接表、邻接多重表和十字邻接矩阵、邻接表、邻接多重表和十字链表链表等表示方法。等表示方法。现在学习的是第22页,共
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 第七
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内