《数据结构与算法》PPT课堂课件-第13章-图.ppt
《《数据结构与算法》PPT课堂课件-第13章-图.ppt》由会员分享,可在线阅读,更多相关《《数据结构与算法》PPT课堂课件-第13章-图.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/3/161第十三章第十三章 图图v13.1 图的定义和术语图的定义和术语v图图(Graph)图图G是由两个集合是由两个集合V(G)和和E(G)组成的组成的,记为记为G=(V,E)其中:其中:V(G)是顶点的非空有限集是顶点的非空有限集 E(G)是边的有限集合,边是顶点的无序对或有序对是边的有限集合,边是顶点的无序对或有序对v有向图有向图有向图有向图G是由两个集合是由两个集合V(G)和和E(G)组成的组成的 其中:其中:V(G)是顶点的非空有限集是顶点的非空有限集 E(G)是有向边(也称弧)的有限集合,弧是顶点的有序是有向边(也称弧)的有限集合,弧是顶点的有序对,记为对,记为,v,w是
2、顶点,是顶点,v为弧尾,为弧尾,w为弧头为弧头v无向图无向图无向图无向图G是由两个集合是由两个集合V(G)和和E(G)组成的组成的 其中:其中:V(G)是顶点的非空有限集是顶点的非空有限集 E(G)是边的有限集合,边是顶点的无序对,记为是边的有限集合,边是顶点的无序对,记为 (v,w)或(或(w,v),并且(并且(v,w)=(w,v)2023/3/162例245136G1图G1中:V(G1)=1,2,3,4,5,6 E(G1)=,例157324G26图G2中:V(G2)=1,2,3,4,5,6,7 E(G1)=(1,2),(1,3),(2,3),(2,4),(2,5),(5,6),(5,7)2
3、023/3/163v有向完备图n个顶点的有向图最大边数是n(n-1)v无向完备图n个顶点的无向图最大边数是n(n-1)/2v权与图的边或弧相关的数叫v网带权的图叫v子图如果图G(V,E)和图G(V,E),满足:VVEE 则称G为G的子图v顶点的度无向图中,顶点的度为与每个顶点相连的边数有向图中,顶点的度分成入度与出度v入度:以该顶点为头的弧的数目v出度:以该顶点为尾的弧的数目v路径路径是顶点的序列V=Vi0,Vi1,Vin,满足(Vij-1,Vij)E 或 E,(1jn)2023/3/164v路径长度沿路径边的数目或沿路径各边权值之和v回路第一个顶点和最后一个顶点相同的路径叫v简单路径序列中顶
4、点不重复出现的路径叫v简单回路除了第一个顶点和最后一个顶点外,其余顶点不重复出现的回路叫v连通从顶点V到顶点W有一条路径,则说V和W是连通的v连通图图中任意两个顶点都是连通的叫v连通分量非连通图的每一个连通部分叫v强连通图有向图中,如果对每一对Vi,VjV,ViVj,从Vi到Vj 和从Vj到 Vi都存在路径,则称G是2023/3/165例213213有向完备图无向完备图356例245136图与子图例245136G1顶点2入度:1 出度:3顶点4入度:1 出度:0例157324G26顶点5的度:3顶点2的度:42023/3/166例157324G26例245136G1路径:1,2,3,5,6,3
5、路径长度:5简单路径:1,2,3,5回路:1,2,3,5,6,3,1简单回路:3,5,6,3路径: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,12023/3/167连通图例245136强连通图356例非连通图连通分量例2451362023/3/168v13.2 图的存储结构多重链表例G12413例15324G2V1V2 V4 V3 V1 V2 V4 V5 V32023/3/169邻接矩阵表示顶点间相联关系的矩阵v定义:设G=(V,E)是有n1个顶点的图,G的邻接矩阵A是具有以下性质的n阶方阵例G12413例15
6、324G22023/3/1610v特点:无向图的邻接矩阵对称,可压缩存储;有n个顶点的无向图需存储空间为n(n+1)/2有向图邻接矩阵不一定对称;有n个顶点的有向图需存储空间为n无向图中顶点Vi的度TD(Vi)是邻接矩阵A中第i行元素之和有向图中,v顶点Vi的出度是A中第i行元素之和v顶点Vi的入度是A中第i列元素之和网络的邻接矩阵可定义为:2023/3/1611例14523753186422023/3/1612邻接表v实现:为图中每个顶点建立一个单链表,第i个单链表存放顶点Vi的所有邻接顶点。2023/3/1613v特点无向图中顶点Vi的度为第i个单链表中的结点数有向图中v顶点Vi的出度为第
7、i个单链表中的结点个数v顶点Vi的入度为整个单链表中邻接点域值是i的结点个数逆邻接表:有向图中对每个结点建立以Vi为终点的边的单链表求解麻烦!例 1 3 11342 2 42023/3/1614 紧缩邻接表将图紧缩邻接表将图G的每个顶点的邻接表紧凑地存储在的每个顶点的邻接表紧凑地存储在2个一个一维数组维数组List和和h中。其中一维数组中。其中一维数组List依次存储顶点依次存储顶点1,2,n的的邻接顶点。数组单元邻接顶点。数组单元hi存储顶点存储顶点i的邻接表在数组的邻接表在数组List中的起中的起始位置。始位置。紧缩邻接表如图如图G2G2和和G1G1的紧缩邻接表表示分别如下图的紧缩邻接表表
8、示分别如下图(a)(a)和和(b)(b):2023/3/1615v13.3 图的遍历深度优先遍历(DFS)v方法:从图的某一顶点V0出发,访问此顶点;然后依次从V0的未被访问的邻接点出发,深度优先遍历图,直至图中所有和V0相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未被访问的顶点作起点,重复上述过程,直至图中所有顶点都被访问为止(问题:什么时候会出现这种情况?)V1V2V4V5V3V7V6V8例深度遍历:V1 V2 V4 V8 V5 V3 V6 V7类似于:树的前序遍历!2023/3/1616V1V2V4V5V3V7V6V8例例V1V2V4V5V3V7V6V8深度遍历:V1
9、 V2 V4 V8 V5 V6 V3 V7深度遍历:V1 V2 V4 V8 V5 V6 V3 V72023/3/1617V1V2V4V5V3V7V6V8例深度遍历:V1 V2 V4 V8 V3 V6 V7 V52023/3/1618v深度优先遍历算法递归算法开始访问v,置标志求v邻接点有邻接点u求下一邻接点uvu访问过结束NYNYDFS开始标志数组初始化Vi=1Vi访问过DFSVi=Vi+1Vi=Vexnums结束NNYY2023/3/1619V1V2V4V5V3V7V6V8例深度遍历:V112341342vexdata firstarc 2 7 8 3adjvex next55 6 4 1
10、5 1 2 8 2678678 7 3 6 3 5 4V3 V7 V6 V2 V5 V8 V42023/3/1620V1V2V4V5V3V7V6V8例12341342vexdata firstarc 2 7 8 3adjvex next55 6 4 8 2678678 7深度遍历:V1V3 V7 V6 V2 V4 V8 V52023/3/162113.3 图的遍历广度优先搜索(BFS)v方法:从图的某一顶点V0出发,访问此顶点后,依次访问V0的各个未曾访问过的邻接顶点;然后分别从这些邻接顶点出发,广度优先遍历图,直至图中所有已被访问的顶点的邻接点都被访问到;若此时图中尚有顶点未被访问,则另选图
11、中一个未被访问的顶点作起点,重复上述过程,直至图中所有顶点都被访问为止V1V2V4V5V3V7V6V8例广度遍历:V1 V2 V3 V4 V5 V6 V7 V8类似于:树的层次遍历!2023/3/1622V1V2V4V5V3V7V6V8例例V1V2V4V5V3V7V6V8广度遍历:V1 V2 V3 V4 V5 V6 V7 V8广度遍历:V1 V2 V3 V4 V5 V6 V7 V82023/3/1623V1V2V4V5V3V7V6V8例广度遍历:V1 V2 V3 V4 V6 V7 V8 V52023/3/1624v广度优先遍历算法开始标志数组初始化Vi=1Vi访问过BFSVi=Vi+1Vi=V
12、exnums结束NNYY2023/3/1625开始访问v置标志求w邻接点uu存在吗w下一邻接点uu访问过结束NYNYBFS初始化队列v入队队列空吗队头w出队访问u,置标志u入队NaaY2023/3/1626例1423512341342vexdata firstarc 5 5 4 3adjvex next55 1 5 1 1 4 3 2 20 1 2 3 4 51fr遍历序列:10 1 2 3 4 54fr遍历序列:1 40 1 2 3 4 54 3fr遍历序列:1 4 32023/3/1627例1423512341342vexdata firstarc 5 5 4 3adjvex next55
13、 1 5 1 1 4 3 2 20 1 2 3 4 54 3 2fr遍历序列:1 4 3 20 1 2 3 4 5 3 2fr遍历序列:1 4 3 20 1 2 3 4 5 3 2 5fr遍历序列:1 4 3 2 52023/3/16280 1 2 3 4 5 2 5fr遍历序列:1 4 3 2 50 1 2 3 4 5 5fr遍历序列:1 4 3 2 50 1 2 3 4 5 fr遍历序列:1 4 3 2 5例1423512341342vexdata firstarc 5 5 4 3adjvex next55 1 5 1 1 4 3 2 22023/3/1629v13.4 最短路径问题提出用
14、带权的有向图表示一个交通运输网,图中:顶点表示城市边表示城市间的交通联系权表示此线路的长度或沿此线路运输所花的时间或费用等问题:从某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径最短路径单源最短路径51643208562301371732913长度最短路径8131921202023/3/1630vDijkstra算法思想按路径长度递增次序产生最短路径算法:把V分成两组:(1)S:已求出最短路径的顶点的集合(2)V-S=T:尚未确定最短路径的顶点集合将T中顶点按最短路径递增的次序加入到S中,保证:(1)从源点V0到S中各顶点的最短路径长度都不大于 从V0到T中任何顶点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构与算法 数据结构 算法 PPT 课堂 课件 13
限制150内