持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第27天,点击查看活动详情
为了表达与描述上的方便,一般称图中的一个数据元素为一个顶点(vertex),两个顶点之间的关系称为边(edge)或弧(arc),通常用顶点的偶对(vi,vj)或者<vi,vj>来表示。
图的基本概念
图的定义和基本术语
1.基本定义
图(graph)是由顶点的非空有限集合V(由n>0个顶点组成)与边的集合E(顶点之间的关系)构成的。其形式化定义为 G=(V,E)
若图G中的每一条边都是没有方向的,则称G为无向图。无向图中的边表示图中顶点的无序偶对。因此,在无向图中,顶点偶对(vi,vj)和顶点偶对(vj,vi)表示同一条边。
若图G中的每一条边都具有方向,则称G为有向图。在有向图中,一条有向边是顶点的有序偶对。例如,顶点偶对<vi,vj>表示从顶点vi指向顶点vj的一条有向边,其中顶点vi称为有向边 <vi,vj>的始点,顶点vj称为该有向边的终点。有向边也称为弧,称始点vi为弧尾,称终点vj为弧头。读者也许已经注意到了,为了区别于无向图(仅此而已),这里使用了一对尖括号来括住顶点的偶对,而未用一对圆括号括住顶点偶对。
若(vi,vj)是一条无向边,则称顶点v i 和顶点v j 是互为邻接点,或称vi和vj相邻接,并称边(vi,vj)依附于顶点vi和顶点vj。若<vi,vj>是一条有向边,则称顶点v i 是顶点v j 的邻接点,并称边<vi,vj>依附于顶点vi和顶点vj。
与边有关的数据信息被称为权。
每条边上都带权的图称为网络,简称网。
2.基本术语
(1)度:顶点的度是指依附于某顶点v的边数,通常记为TD(v)。对于有向图,要区别顶点的入度与出度的概念。有向图中的顶点v的入度是指以顶点v为终点的弧的数目,记为ID(v);顶点v的出度是指以顶点v为始点的弧的数目,记为OD(v)。出度与入度之和为顶点v的度,即TD(v)=ID(v)+OD(v)。
如果用n表示图中顶点的数目,用e表示边或弧的数目,用TD(vi)表示顶点vi的度,则可以证明三者之间满足如下关系:
从这个关系不难得知,具有n个顶点的无向图最多有n(n-1)/2条边,称这样的图为完全图。具有n个顶点的有向图最多有n(n-1)条边(弧),称这样的有向图为有向完全图。若一个图接近于完全图,称为稠密图;称边或弧的数目很少的图为稀疏图。
(2) 路径:在无向图G中,若存在顶点序列v1,v2,…,vm,使得顶点偶对(vi,vi+1)∈E(i=1,2,…,m-1),则称该顶点序列为顶点v1和顶点vm之间的一条路径,其中v1被称为该路径的始点,vm称为该路径的终点。这条路径上所包含的边的数目m-1被称为该路径的长度。若G为有向图,则路径也是有向的,其中,每一条边(vi,vi+1)∈E(i=1,2,… ,m-1)均为有向边。对于带权图,路径长度是指路径上所有边上的权值之和。
另外,称v1=vm的路径为回路或者环( cycle)。序列中顶点不重复出现的路径称为简单路径。除第1个顶点与最后一个顶点之外,其他顶点不重复出现的回路称为简单回路,或者简单环。
在一个有向图中,若存在一个顶点v,从该顶点出发有路径可以到达图中其他所有顶点,则称此有向图为有根图,v被称为该有向图的根。
(3) 子图:对于图G=(V,E)与图G'=(V',E'),若存在V'包含于V与E'包含于E,则称图G'是图G的一个子图。
(4)图的连通:对于无向图,若从顶点vi到顶点vj(i≠j)有路径,则称vi和vj之间是连通的。如果无向图中任意两个顶点vi和vj(i≠j)之间都是连通的,则称该无向图为连通图,否则,称该无向图为非连通图。无向图中的极大连通子图称为该图的连通分量。显然,连通图的连通分量只有一个,即连通图本身,而非连通图的连通分量不是唯一的(个人理解:是指每个子图的连通分量最大,比如有两个 两个连通分量分别有5个和3个顶点,则这两个都是,而不是最大的5,因为5和3分别为各自子图中的极大连通分量。) 对于有向图来说,若图中一对顶点vi和vj(i≠j)均有从vi到vj,以及从vj到vi的有向路径,则称vi和vj之间是连通的。若有向图中任意两个顶点vi和vj(i≠j)之间都是连通的,则称该有向图是强连通图。有向图中的极大强连通子图称为该有向图的强连通分量。
(5)生成树:若图G为包含n个顶点的连通图,则所谓G的生成树是G的一个极小连通子图,它包含其全部n个顶点的一个极小连通子图,并且该子图一定包含且仅仅包含G的n-1条边。生成树中不含有回路,在生成树中添加任意一条属于G中的边必然会产生回路,因为新添加的边使其所依附的两个顶点之间有了第⒉条路径。若在生成树中减少任意一条边,则一定会使它成为非连通的。一棵具有n个顶点的生成树有且仅有n-1条边。可以肯定地说,如果一个图有n个顶点和少于n-1条边,则该图一定是非连通图。如果边数多于n-1条,则图中一定存在回路。需要说明的是,具有n-1条边的子图不一定是生成树。一般情况下,连通图的生成树不是唯一的。
(6)生成树林: