第1章 图的基本概及图的存储精选PPT.ppt
《第1章 图的基本概及图的存储精选PPT.ppt》由会员分享,可在线阅读,更多相关《第1章 图的基本概及图的存储精选PPT.ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1 1章章 图的基本概及图的存储图的基本概及图的存储第1页,此课件共68页哦引论 哥尼斯堡七桥问题又称Euler回路问题一条河流横贯哥尼斯堡城区,它有两条支流,在这两条支流之间夹着一块岛形地带,这里是城市的繁华地区。全城分为北、东、南、岛四个区,各区之间共有七座桥梁联系着。游人从两岸A、B、C、D中任何一个地方出发,要找到一条路线一条路线一条路线一条路线做到每座桥恰好都通过一次而最后返回原地做到每座桥恰好都通过一次而最后返回原地做到每座桥恰好都通过一次而最后返回原地做到每座桥恰好都通过一次而最后返回原地。1736年,Euler提出该问题的解不存在。第2页,此课件共68页哦1.1 基本概念图
2、论知识的一个特点就是概念特别多。本节只介绍一些基本的概念,其他概念(如割点、割边等)在其他章节里需要用到的时候再补充。第3页,此课件共68页哦1.1.1 有向图与无向图图图图图是由顶点集合顶点集合顶点集合顶点集合和顶点间关系集合(即边的集合边的集合边的集合边的集合或弧的集合弧的集合弧的集合弧的集合)组成的数据结构,通常可以用 来表示,其顶点集合和边的集合分别用 和 表示。G:graph V:vertex E:edge例如,图1.1(a)所示的图可以表示为 ,其中顶点集合顶点集合顶点集合顶点集合 ,集合中的元素为顶点的序号;边的集边的集边的集边的集合合合合为:。第4页,此课件共68页哦 无向图无
3、向图无向图无向图:图中的每条边没有方向图中的每条边没有方向图中的每条边没有方向图中的每条边没有方向。通常用符号(u,v)(u,v)表示顶点u到顶点v的一条无向边。有向图有向图有向图有向图:图中的每条边(通常可称为弧弧弧弧)都有方向方向方向方向。通常用符号表示顶点u到顶点v的一条有向边,其中u为这条边的起始顶点起始顶点起始顶点起始顶点(起点起点起点起点),v为这条有向边的终止顶点终止顶点终止顶点终止顶点(终点终点终点终点)。第5页,此课件共68页哦1.1.2 完全图、稀疏图、稠密图 完全图完全图完全图完全图:任何一对顶点之间都有一条边,这种无向图称为完全图。有向完全图有向完全图有向完全图有向完全
4、图:任何一对顶点u和v,都存在和两条有向边,这种有向图称为有向完全图。第6页,此课件共68页哦 稀疏图稀疏图稀疏图稀疏图:边或弧的数目相对较少(远小于n(n-1))的图称为稀疏图。稠密图稠密图稠密图稠密图:边或弧的数目相对较多的图(接近于完全图或有向完全图)称为稠密图。第7页,此课件共68页哦1.1.3 顶点与顶点、顶点与边的关系在无向图和有向图中,顶点和顶点之间的关系顶点和顶点之间的关系顶点和顶点之间的关系顶点和顶点之间的关系,以及顶点和顶点和顶点和顶点和边的关系边的关系边的关系边的关系是通过“邻接邻接邻接邻接”这个概念来表示的。在无向图 中,如果 是 中的元素,即是图中的一条无向边,则称顶
5、点 与顶点 互为邻接顶点互为邻接顶点互为邻接顶点互为邻接顶点,且边 依附依附依附依附于于于于顶点 和 。例如,在图1.1(a)所示的无向图 中,与顶点1相邻接相邻接相邻接相邻接的顶点有0,2,3,4,5,而依依依依附于附于附于附于顶点1的边有 ,和 。第8页,此课件共68页哦例如,在图1.1(b)所示的有向图 中,顶点1分别邻接到邻接到邻接到邻接到顶点2,4,5,邻接自邻接自邻接自邻接自顶点0和4;有向边 的顶点1邻接到邻接到邻接到邻接到顶点5,顶点5邻接自邻接自邻接自邻接自顶点1;顶点1分别与边 ,和 相关联相关联相关联相关联;等等。在有向图 中,如果 是 中的元素,即是图中的一条有向边,则
6、称顶点 邻接到邻接到邻接到邻接到顶点 ,顶点 邻接自邻接自邻接自邻接自顶点 ,边 与顶点 和 相关联相关联相关联相关联。第9页,此课件共68页哦1.1.4 顶点的度数及度序列与顶点度数有关的概念:度数度数度数度数、出度出度出度出度、入度入度入度入度、偶点偶点偶点偶点、奇点奇点奇点奇点;度序列度序列度序列度序列与Havel-HakimiHavel-Hakimi定理定理定理定理。第10页,此课件共68页哦顶点的度度度度(degree)(degree):一个顶点一个顶点一个顶点一个顶点 的度是与它相关联的边的条数的度是与它相关联的边的条数的度是与它相关联的边的条数的度是与它相关联的边的条数,记作 。
7、例如在图1.1(a)所示的无向图 中,顶点1的度数为5,顶点4的度数为3,等等。在有向图中,顶点的度等于该顶点的出度与入度之和顶点的度等于该顶点的出度与入度之和顶点的度等于该顶点的出度与入度之和顶点的度等于该顶点的出度与入度之和。其中顶点 的出度出度出度出度是以 为起始顶点的有向边的条数,记作 ;顶点 的入度入度入度入度是以 为终点的有向边的条数,记作 。顶点 的度度度度 。例如在图1.1(b)所示的有向图 中,顶点1的出度数为3,入度为2,度为3+2=5。第11页,此课件共68页哦在无向图和有向图中,边的个数和顶点的度都存在如下在无向图和有向图中,边的个数和顶点的度都存在如下关系关系(假设图
8、假设图 有有 个顶点,有个顶点,有 条边条边):即在无向图和有向图中,所有顶点的度的总和,等于边的数目的两倍。这是因为,不管是有向图还是无向图,在统计所有顶点的度的总和时,每条边都统计了两次每条边都统计了两次每条边都统计了两次每条边都统计了两次。第12页,此课件共68页哦 偶点偶点偶点偶点:度数为偶数度数为偶数度数为偶数度数为偶数的顶点;奇点奇点奇点奇点:度数为奇数度数为奇数度数为奇数度数为奇数的顶点;孤立顶点孤立顶点孤立顶点孤立顶点:度数为度数为度数为度数为0 0的顶点的顶点的顶点的顶点,称为孤立顶点。孤立顶点不与其他任何顶点邻接。叶叶叶叶(叶顶点叶顶点叶顶点叶顶点、端点端点端点端点):度数
9、为度数为度数为度数为1 1的顶点的顶点的顶点的顶点,称为叶顶点叶顶点叶顶点叶顶点。其他顶点称为非叶顶点非叶顶点非叶顶点非叶顶点。图G的最小度最小度最小度最小度:图G所有顶点的最小的度数,记为(G)(G)。图G的最大度最大度最大度最大度:图G所有顶点的最大的度数,记为(G)(G)。第13页,此课件共68页哦度序列与Havel-Hakimi定理 度序列度序列度序列度序列:若把图G所有顶点的度数排成一个序列s,则称s为图G的度序列。s:2,5,4,3,3,1s:2,5,4,3,3,1按顶点序号排序s:1,2,3,3,4,5s:1,2,3,3,4,5按度数非减顺序排列s:5,4,3,3,2,1s:5,
10、4,3,3,2,1按度数非增顺序排列两个问题:1)给定一个图,确定它的度序列给定一个图,确定它的度序列:很简单;2)逆问题逆问题逆问题逆问题:给定一个由非负整数组成的有限序列给定一个由非负整数组成的有限序列s s,判断,判断s s是否是某是否是某个图的度序列个图的度序列。第14页,此课件共68页哦 序列是可图的序列是可图的序列是可图的序列是可图的:一个非负整数组成的有限序列如果是某个无向图的度序列,则称该序列是可图的。Havel-HakimiHavel-Hakimi定理定理定理定理:由非负整数组成的非增序列s:d1,d2,dn(n 2,d1 1)是可图的,当且仅当序列s1:d2 1,d3 1,
11、dd1+1 1,dd1+2,dn是可图的。序列s1中有n-1个非负整数,s序列中d1后的前d1个度数(即d2 dd1+1)减1后构成s1中的前d1个数。练习:练习:练习:练习:判断序列s:7,7,4,3,3,3,2,1是否是可图的。判断序列s:5,4,3,3,2,2,2,1,1,1是否是可图的。第15页,此课件共68页哦Havel-Hakimi定理实际上给出了根据一个序列根据一个序列根据一个序列根据一个序列s s构造图(或判定构造图(或判定构造图(或判定构造图(或判定s s不不不不是可图的)的方法是可图的)的方法是可图的)的方法是可图的)的方法:把序列s按照非递增的顺序排序以后,其顺序为d1,
12、d2,dn;度数最大的顶点(设为v1),将它与度数次大的前与度数次大的前与度数次大的前与度数次大的前d d1 1个顶点之个顶点之个顶点之个顶点之间连边间连边间连边间连边,然后这个顶点就可以不管这个顶点就可以不管这个顶点就可以不管这个顶点就可以不管了,即在序列中删除首项d1,并把后面的d1个度数减1;再把剩下的序列重新按非递增顺序排序,按照上述过程连边;直到建出完整的图,或出现负度数等明显不合理的情况为止。序列s:3,3,2,2,1,1s:3,3,2,2,1,1第16页,此课件共68页哦1.1.5 二部图与完全二部图 二部图二部图二部图二部图:设无向图为G(V,E),它的顶点集合V包含两个没有公
13、共元素的子集:X=x1,x2,xs 和Y=y1,y2,yt,元素个数分别为s和t;并且xi与xj之间(1 i,j s)、yl与yr之间(1 l,r t)之间没有边连接,则称G为二部图二部图二部图二部图。完全二部图完全二部图完全二部图完全二部图:在二部图G中,如果顶点集合X中每个顶点xi与顶点集合Y中每个顶点yl都有边相连,则称G为完全二部图完全二部图完全二部图完全二部图,记为Ks,t,s和t分别为集合X和集合Y中的顶点个数。第17页,此课件共68页哦1.1.6 图的同构 图的同构图的同构图的同构图的同构:设有两个图G1和G2,如果这两个图区别仅在于图的画法与(或)顶点的标号方式,则称它们是同构
14、的。意思就是说这两个图是同一个图。第18页,此课件共68页哦1.1.7 子图与生成树设有两个图 和 ,如果 ,且 ,则称图 是图 的子图子图子图子图。例如,图1.8(a)、(b)所示的无向图都是图1.1(a)所示的无向图 的子图,而图1.8(c)、(d)所示的有向图都是图1.1(b)所示的有向图 的子图。第19页,此课件共68页哦生成树生成树生成树生成树:一个无向连通图的生成树是它的包含所有顶点的极小连通子包含所有顶点的极小连通子包含所有顶点的极小连通子包含所有顶点的极小连通子图图图图,这里所谓的极小就是边的数目极小。如果图中有n个顶点,则生成树有n-1条边。例如,图1.1(a)所示的无向图
15、的一个生成树如图1.9(a)所示。为了更形象地表示这个生成树,图(b)把它画成了以顶点0为根节点的树,图(c)把它画成了以顶点2为根节点的树。第20页,此课件共68页哦1.1.8 路径路径是图论中一个很重要的概念。在图 中,若从顶点 出发,沿着一些边经过一些顶点 ,,到达顶点 ,则称顶点序列(,)为从顶点 到顶点 的一条路径路径路径路径。其中 ,为图 中的边,如果 是有向图,则 ,为图 中的有向边。例如,在图(a)所示的无向图 中,顶点序列(0,1,4,3)是从顶点0到顶点3的路径,其中(0,1),(1,4),(4,3)都是图 中的边;另外,顶点序列(0,2,3)也是顶点0到顶点3的路径。第2
16、1页,此课件共68页哦在图(b)所示的有向图 中,顶点序列(2,4,1,5)是顶点2到顶点5的路径,其中,都是图 中的边;而顶点6到顶点0没有路径。第22页,此课件共68页哦简单路径简单路径简单路径简单路径:若路径上各顶点 ,均不互相重复,则这样的路径称为简单路径简单路径简单路径简单路径。例如,在图 中,路径(0,1,4,3)就是一条路径。回路回路回路回路:若路径上第一个顶点 与最后一个顶点 重合,则称这样的路径为回路回路回路回路。例如,图 中的路径(1,2,3,4,1)和图 中的路径(4,3,2,4)都是回路。第23页,此课件共68页哦1.1.9 连通性在无向图中,若从顶点从顶点 到到 有路
17、径有路径,则称顶点 和 是连通连通连通连通的。如果无向图中任任任任意一对顶点都是连通意一对顶点都是连通意一对顶点都是连通意一对顶点都是连通的,则称此图是连通连通连通连通图图图图。如果一个无向图不是连通一个无向图不是连通的,则其极极大连通子图大连通子图称为连通分量连通分量连通分量连通分量。例如图(a)所示的无向图 就是一个连通图。在图 中,如果去掉边(1,5),则剩下的图就是非连通的,且包含两个连通分量,一个是由顶点0,1,2,3,4组成的连通分量,另一个是由顶点5构成的连通分量。第24页,此课件共68页哦又如,图1.10所示的无向图就是非连通的。其中顶点A、B、C和E构成一个连通分量,顶点D、
18、F、G和H构成另一个连通分量。第25页,此课件共68页哦在有向图中,若对每一对顶点 和 ,都存在从 到 的路径,也存在从 到 的路径,则称此有向图为强连通图强连通图强连通图强连通图。例如图1.11所示的有向图就是强连通图。第26页,此课件共68页哦例如,图(a)所示的非强连通图包含4个强连通分量,如图(b)所示。其中,顶点1,2,3,4构成一个强连通分量,在这个子图中,每一对顶点 和 ,都存在从 到 的路径,也存在从 到 的路径;顶点0,5,6都自成一个强连通分量。对于非强连通图,其最大强连通子图最大强连通子图称为其强连通分量强连通分量强连通分量强连通分量。第27页,此课件共68页哦1.1.1
19、0 权值、有向网与无向网权值权值:某些图的边具有与它相关的数,称为权值权值。这些权值可以表示从一个顶点到另一个顶点的距离从一个顶点到另一个顶点的距离、花费的代价花费的代价、所需的时间所需的时间等。如果一个图,其所有如果一个图,其所有边都具有权值,边都具有权值,则称为网络网络。根据网络中的边是否具有方向性,又可以分为有向有向网网和无向网无向网。网络可以用 表示。第28页,此课件共68页哦例如,图1.13(a)所示的无向网无向网可表示为 ,其中顶点集合为:边的集合为:在边的集合中,每个元素中的第第3个分量表示个分量表示边的权值边的权值。第29页,此课件共68页哦同样在边的集合中,每个元素中的第第3
20、个分量也表示边的权值个分量也表示边的权值。例如,图1.13(b)所示的有向网有向网可表示为 ,其中顶点集合为:边的集合为:第30页,此课件共68页哦1.2 图的存储表示常用的存储表示方法有:1)邻接矩阵2)邻接表3)邻接多重表第31页,此课件共68页哦1.2.1 邻接矩阵在邻接矩阵中,除了一个记录各个顶点信息的顶点数组外,还有一个表示各顶点之间关系的矩阵,称为邻邻邻邻接矩阵接矩阵接矩阵接矩阵。第32页,此课件共68页哦1.有向图(无向图)的邻接矩阵设 是一个具有 个顶点的图,则图的邻接矩阵是一个二维数组 ,它的定义为:第33页,此课件共68页哦注意:注意:注意:注意:如果图中存在环(连接某个顶
21、点自身的边)和重边(多条边的起点一样,终点也一样)的情形,则无法用邻接矩阵存储。第34页,此课件共68页哦问题:问题:问题:问题:从图的邻接矩阵可以获得什么信息?(说明:邻接矩阵经过运算如乘方后,还可以获得更多的信息,具体请参见相关图论书籍)第35页,此课件共68页哦例例例例1.11.1 用邻接矩阵存储有向图,并输出各顶点的出度和入度。输入描述:输入描述:输入描述:输入描述:输入文件中包含多个测试数据,每个测试数据描述了一个有向图。每个测试数据的第一行为一个正整数正整数正整数正整数n n(1n100),表示该有向图的有向图的有向图的有向图的顶点数目顶点数目顶点数目顶点数目,顶点的序号从顶点的序
22、号从顶点的序号从顶点的序号从1 1开始计起开始计起开始计起开始计起。接下来包含若干行,每行为两个两个两个两个正整数正整数正整数正整数,用空格隔开,分别表示一条边的起点和终点起点和终点起点和终点起点和终点。每条边出现一次且仅一次,图中不存在环和重边不存在环和重边不存在环和重边不存在环和重边。0 0代表该测试数据的结束。输入数据最后一行为最后一行为最后一行为最后一行为0 0,表示输入数据结束。输出描述:输出描述:输出描述:输出描述:对输入文件中的每个有向图,输出两行:第1行为n个正整数,表示每个顶点的出度;第2行也为n个正整数,表示每个顶点的入度。每两个正整数之间用一个空格隔开两个正整数之间用一个
23、空格隔开两个正整数之间用一个空格隔开两个正整数之间用一个空格隔开,每行的最后一个正整数之后没有空格。第二种输入方式!第36页,此课件共68页哦样例输出:样例输出:样例输出:样例输出:1 3 1 1 2 1 00 2 2 1 2 1 1样例输入:样例输入:样例输入:样例输入:71 22 32 52 63 54 35 25 36 50 00第37页,此课件共68页哦分析:分析:分析:分析:在程序中可以使用一个二维数组二维数组二维数组二维数组存储表示邻接矩阵。注意,输入文件中顶点的序号是从1开始计起的,而二维数组中的下标是从0开始计起,所以在将边的信息存入到邻接矩阵时,需要将边的起点和终点的序号减1
24、。在将有向边存储表示到邻接矩阵Edge中时,只需要将元素Edgeu-1v-1Edgeu-1v-1的值置为1。本题中的有向图都是无权图,邻接矩阵中每个元素要么为1,要么为0。第i个顶点的出度出度出度出度等于邻接矩阵中第i行所有元素中元素值为1的个数。把第i行所有元素值累加起来,得到的结果也是该顶点的出度。同理,在计算第i个顶点的入度入度入度入度时,也只需将第i列所有元素值累加起来累加起来即可。第38页,此课件共68页哦题目要求输出n个顶点的出度(入度)时,每两个正整数之间用一个空每两个正整数之间用一个空每两个正整数之间用一个空每两个正整数之间用一个空格隔开格隔开格隔开格隔开,最后一个正整数之后没
25、有空格。可以采取的策略是:输出第0个顶点的出度时前面没有空格,输出后面n-1个顶点的出度时输出一个空格。第39页,此课件共68页哦#include#include#define MAXN 100int EdgeMAXNMAXN;/邻接矩阵int main()int i,j;/循环变量int n;/顶点个数int u,v;/边的起点和终点int od,id;/顶点的出度和入度while(1)scanf(%d,&n);/读入顶点个数nif(n=0)break;memset(Edge,0,sizeof(Edge);while(1)scanf(%d%d,&u,&v);/读入边的起点和终点if(u=0&
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第1章 图的基本概及图的存储精选PPT 基本 存储 精选 PPT
限制150内