《数据结构-C语言描述》课件第10章.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构-C语言描述 数据结构 语言 描述 课件 10
- 资源描述:
-
1、第10章 图 第10章 图10.1 图的基本概念图的基本概念 10.2 图的存储结构图的存储结构 10.3 图的遍历图的遍历 10.4 拓扑排序和关键路径拓扑排序和关键路径 10.5 最小代价生成树最小代价生成树 10.6*最短路径最短路径 习题习题10 第10章 图 10.1 图的基本概念图的基本概念第10章 图 10.1.1 图的定义与术语图的定义与术语 图(graph)是数据结构G=(V,E),其中V(G)是G中结点的有限非空集合,结点的偶对称为边(edge),E(G)是G中边的有限集合。图中的结点常称为顶点(vertices)。若图中代表一条边的偶对是有序的,则称其为有向图(direc
2、ted graph)。用v1,v2代表有向图中的一条有向边,v1称为边的始点(尾tail),v2称为边的终点(头head)。v1,v2和v2,v1这两个偶对代表不同的边。有向边也称为弧(arc)。第10章 图 图102 图的示例(a)无向图G1;(b)有向图G230142(a)40132(b)第10章 图 若图中代表一条边的偶对是无序的,则称其为无向图(undirected graph)。用(v1,v2)代表无向图中的边,这时(v1,v2)和(v2,v1)是同一条边。事实上,对任何一个有向图,若u,vE,必有v,uE,即E是对称的,则可以用一个无序对(u,v)代替这两个有序对,表示u 和v之间
3、的一条边,便成为无向图。图102中的G1是无向图,G2是有向图。图中:V(G1)=V(G2)=v0,v1,v2,v3,v4 E(G1)=(v0,v1),(v0,v2),(v0,v4),(v1,v2),(v2,v3),(v2,v4),(v3,v4)E(G2)=,第10章 图 如果边(vi,vi)或是允许的,这样的边称为自回路(self loop),如图103(a)所示。两顶点间允许有多条相同边的图,称为多重图(multigraph),如图103(b)所示。在我们以后的讨论中,不允许存在自回路和多重图。第10章 图 图103 自回路和多重图示例(a)自回路;(b)多重图1(a)1(b)024032
4、第10章 图 图104 完全图示例0123452723第10章 图 如果一个图有最多的边数,称为完全图(complete graph)。无向完全图有n(n1)/2条边;有向完全图有n(n1)条边。图104是一个无向完全图。若(v1,v2)是无向图的一条边,则称顶点v1和v2相邻接(adjacent);若v1,v2是有向图的一条边,则称顶点v1邻接到(adjacent to)顶点v2,顶点v2邻接自(adjacent from)v1,并称边(v1,v2)或v1,v2与顶点v1 和v2相关联(incident)。图102(a)的图G1中,v1 和v2相邻接。图102(b)的图G2中,v1邻接到v2
5、,v2邻接自v1,与顶点v2相关联的弧有v1,v2、v2,v0、v2,v4和v3,v2。第10章 图 图G的一个子图(subgraph)是一个图G=(V,E),使得V(G)V(G),E(G)E(G)。图105(a)和(b)各给出了图102所示的图G1和G2的一个子图。在无向图G中,一条从vp到vq的路径(path)是一个顶点的序列:vp,v1,v2,vn,vq,使得(vp,v1),(v1,v2),(vn,vq)是图G的边。若图G是有向图,则该路径使得vp,v1,v1,v2,vn,vq是图G的边。路径上边的数目称为路径长度(path length)。第10章 图 图105 图102所示的图的子图
6、(a)图G1的子图;(b)图G2的子图;(c)图G1的生成树1(b)1(c)4032021(a)04243第10章 图 如果一条路径上的所有结点,除起始顶点和终止顶点可以相同外,其余顶点各不相同,则称其为简单路径(simple path)。一个回路(cycle)是一条简单路径,其起始顶点和终止顶点相同。我们用结点序列来表示路径。图102的图G1中,v0,v1,v2,v4是一条简单路径,其长度为3。v0,v1,v2,v4,v0是一条回路,v0,v1,v2,v0,v4是一条路径,但不是简单路径。第10章 图 一个无向图中,若两个顶点v0和v1间存在一条从v0到v1的路径,则称v0和v1是连通的。若
7、图中任意一对顶点都是连通的,则称此图是连通图(connected graph)。一个有向图中,若任意一对顶点v0和v1间存在一条从v0到v1的路径和一条从v1到v0的路径,则称此图是强连通图(strongly connected graph)。图102的图G1是连通图,图G2不是强连通图。无向图的一个极大连通子图称为该图的一个连通分量(connected component)。有向图的一个极大强连通子图称为该图的一个强连通分量(strongly connected component)。见图106的例子。第10章 图 图106 图的强连通分量(a)图G3;(b)图G3的两个强连通分量 1(a)
8、13(b)4032402第10章 图 图中一个顶点的度(degree)是与该顶点相关联的边的数目。有向图的顶点v的入度(in-degree)是以v为头的边的数目,顶点v的出度(out-degree)是以v为尾的边的数目。图106(a)中,顶点0的度为4,入度为3,出度为1。第10章 图 一个无向连通图的生成树(spanning tree)是一个极小连通子图,它包括图中全部顶点,但只有足以构成一棵树的n1条边(见图105(c)。有向图的生成森林是这样的一个子图,它由若干棵互不相交的有根有向树组成,这些树包含了图中全部顶点。有根有向树是一个有向图,它恰有一个顶点入度为0,其余顶点的入度为1,并且如
展开阅读全文