图的基本概念
定义
图是一种非线性的逻辑结构。如果在某个结构中,任意两个元素之间都存在多对多的关系,那么我们就把这个结构称为图。
图 G G G 由顶点集 V V V 和 表示顶点之间联系的边集 E E E 组成,记为 G = ( V , E ) G=(V,E) G=(V,E),其中 V V V为有限非空集合。
由于人们习惯于将有关联的两个元素连接起来,因此,图结构又被称为网状结构。
与线性表、树不同的是,线性表可以是空表,树可以是空树,但图不可以是空图。
常用术语
图的基本术语非常的多,我们逐一讲解。
有向图
在图 G = ( V , E ) G=(V,E) G=(V,E) 中,若 E E E 为有向边(也可以叫弧)的集合,那么我们图 G G G称为有向图。
有向边(弧)是顶点的有序对,记为 < v , w > <v,w> <v,w>,其中, v , w v,w v,w 是顶点, v v v称为弧尾, w w w称为弧头, < v , w > <v,w> <v,w> 称为从 v v v 到 w w w 的弧,也叫 v v v 邻接到 w w w。
例如:
表示为:
G = ( V , E ) G=(V,E) G=(V,E)
V = { 1 , 2 , 3 } V=\{1,2,3\} V={1,2,3}
E = { < 1 , 2 > , < 2 , 3 > < 2 , 1 > } E=\{<1,2>,<2,3><2,1>\} E={<1,2>,<2,3><2,1>}
无向图
在图 G = ( V , E ) G=(V,E) G=(V,E) 中,若 E E E 为无向边(简称边)的集合,那么我们图 G G G称为无向图。
边是顶点的有序对,记为 ( v , w ) (v,w) (v,w) 或 ( w , v ) (w,v) (w,v)。可以说 v 和 w 互为邻接点,也可以说 v 和 w 互相关联
例如:
表示为:
G = ( V , E ) G=(V,E) G=(V,E)
V = { 1 , 2 , 3 , 4 } V=\{1,2,3,4\} V={1,2,3,4}
E = { ( 1 , 2 ) , ( 1 , 3 ) ( 1 , 4 ) , ( 2 , 3 ) ( 2 , 4 ) , ( 3 , 4 ) } E=\{(1,2),(1,3)(1,4),(2,3)(2,4),(3,4)\} E={(1,2),(1,3)(1,4),(2,3)(2,4),(3,4)}
简单图、多重图
图 G 若满足:
- 不存在重复边
- 不存在顶点到自身的边
则称图 G 为 简单图。
反之,若图 G 满足:
- 存在重复边
- 存在顶点到自身的边
则称图 G G G 为 多重图。
由于多重图太过复杂,因此在无特殊标注的情况下,我们讨论的图均为简单图。
完全图(简单完全图)
对于存在n个顶点的无向图来说,E集合中边的个数的取值范围为 0 0 0 到 n ( n − 1 ) / 2 n(n-1)/2 n(n−1)/2。
我们把恰好拥有 n ( n − 1 ) / 2 n(n-1)/2 n(n−1)/2 条边(即每两个顶点之间都存在一条边)的无向图称为无向完全图。
例如:
该图为无向完全图。
对于存在n个顶点的有向图来说,E集合中元素个数的取值范围为 0 0 0 到 n ( n − 1 ) n(n-1) n(n−1)。
我们把恰好拥有 n ( n − 1 ) n(n-1) n(n−1) 条弧的有向图称为有向完全图。
例如:
该图为有向完全图。
子图
设存在图 G 1 = ( V 1 , E 1 ) G_1=(V_1,E_1) G1=(V1,E1) 和 G 2 = ( V 2 , E 2 ) G_2=(V_2,E_2) G2=(V2,E2),若 V 2 V_2 V2 是 V 1 V_1 V1 的子集,且 E 2 E_2 E2 是 E 1 E_1 E1 的子集,则称 G 2 G_2 G2 为 G 1 G_1 G1 的子图。
连通、连通图和连通分量
在无向图中,若存在从 v 到 w 的路径,则称 v 和 w 是连通的。
注意:这里说的是路径,并不是边。路径至少包含一条边。
若图G中任意两个顶点都是连通的,则称图G为连通图,否则称为非连通图。
无向图中的极大连通子图称为连通分量。
极大连通子图指,子图中任意两个顶点是连通的,且包含尽可能多的顶点和边。
例如:
图G有两个极大连通子图,G1、G2。
现在有一个子图 G3,G3 相较于 G1 少了 (1,4),没有包含尽可能多的边和顶点,因此不是极大连通子图。
强连通图、强连通分量
在有向图中,对顶点 v,w ,若存在从v到w的路径,也存在从w到v的路径,那么称这两个顶点是强连通的。
若对任意的两个顶点 v,w都是强连通的,那么我们称这个有向图为强连通图。
有向图中的极大强连通子图称为有向图的强连通分量。
例如:
如果G1去掉一条有向边
显然,该图也是图G的子图,但是由于没有尽可能多地包含有向边,因此,该图不是连通分量。
### 顶点的度、入度和出度在无向图中,顶点v的度是指依附于顶点v的边的条数,记为 TD(v)。无向图中的顶点的度之和等于边数的两倍,因为每条边和两个顶点相关联。
例如:
该图中,任意一个顶点的度均为3,各顶点的度数之和=3*4=12,边数为6。
在有向图中,顶点v的度分为入度和出度。入度以v为终点的有向边的个数,记为ID(v);出度是以v为起点的有向边的个数,记为OD(v)。顶点v的度TD(v) = ID(v) + OD(v)。有向图全部顶点的入度之和与出度之和相等,并且等于边数,因为每一条有向边都有一个起点和终点。
例如:
1的入度 = 0 出度 = 3
2的入度 = 1 出度 = 2
3的入度 = 2 出度 = 1
4的入度 = 3 出度 = 0
各个顶点的度数均为3. 入度之和 = 出度之和 = 边数。
边的权和网
在一个图中,每条边都可以标上具有某种特殊含义的数值,该数值称为该边的权。
边上带权的图称为带权图,也叫网。
稠密图、稀疏图
边数很少的图称为稀疏图,反之称为稠密图。
一般情况下,当图 G 满足 ∣ E ∣ < ∣ V ∣ log ∣ V ∣ |E|< |V|\log|V| ∣E∣<∣V∣log∣V∣时,可以将图 G视为稀疏图。
路径、路径长度和回路
路径是指从一个顶点到另一个顶点经过的顶点序列。
路径长度是指路径经过的边的个数。
第一个顶点和最后一个顶点相同的路径称为回路,也可称为环。
若一个图有n个顶点,且有大于n-1条边,则该图一定存在回路。
最短路径:
- 对于带权图来说,最短路径指从某个顶点到另一个顶点的最短路径为所有路径中权值之和最小的路径。
- 对于非带权图来说,最短指经过的边最少的路径。
简单路径、简单回路
在路径序列中,顶点不重复出现的路径称为简单路径。
除第一个顶点和最后一个顶点外,其余顶点不重复出现的回路称为简单回路。
距离
如果存在从v到w的路径,则称v到w的路径长度,为v到w的距离。
若v到w不存在路径,则称v到w的距离为无穷。
有向树
一个顶点的入度为0,其余顶点的入度均为1的有向图,又叫有向树。
至此,全篇结束,感谢阅读!