参考书籍:数据结构(c语言版)
- 图的定义和术语
- 图的存储结构
- 图的遍历
- 图的连通性问题
- 有向无环图及其应用
- 最短路径
图的定义和术语
在图形结构中,结点之间的关系可以是任意的,图中任意两个元素之间都可能相关。由此,图的应用极为广泛,特别是近年来的迅速发展,已渗入到诸如语言学、逻辑学、物理、化学、电讯工程、计算机科学以及数学的其他分支之中去。
首先我们来看一下图的一些属于以及基本概念。
-
顶点:在图中的数据元素通常称做顶点
-
有向图:顶点之间存在顺序,通常以箭头连接,如图a
-
无向图:顶点之间不存在顺序,通常以线段连接,如图b
-
弧:有向图中连接顶点的称作弧,如下图红线所示:
-
弧尾:弧的初始点,例如上图中的a
-
弧头:弧的终端店,例如上图中的b
-
边:在无向图中与弧对应的称作边,如下图红线表示
-
完全图:在无向图中有n/2(n-1)条边的无向图称为完全图,如下:
-
有向完全图:具有n(n-1)条弧的有向完全图称为有向完全图,如下:
-
稀疏图:有很少条边或弧的图
-
稠密图:与稀疏图相反
-
权:图的边或弧具有与它相关的数,这种与图的边或弧相关的数叫做权
-
网: 每个边或弧都附加一个权值的图,称为带权图。而带权的连通图称为网,如下图所示:
-
网络:带权的连通图称为网络,网络是工程上的概念,用来表示一个工程或者某种流程
-
邻接点:无向图中,若两顶点之间至少有一条边,则称这两个点互为临界点(对于有向图,弧头邻接自弧尾)
-
度:依附于顶点的的边的数目
显然,在无向图中,所有顶点度的和是图中的2倍 -
出度:以任意一顶点为起点的弧的数目称为该顶点的出度
-
入度:以任意一顶点为终点的弧的数目称为该顶点的入度
顶点的出度与入度之和等于该顶点的度 -
路径:对于无向图,若从顶点a经过若干条边能到达顶点b,则称顶点a与b是联通的,又称顶点a到b有路径
-
有向路径:对于有向图,则称顶点a到b有有向路径
路径上边或弧的数目称为该路径的长度 -
回路:在有向图中,从任意一顶点走一圈能够重新指回该顶点
-
连通:在无向图中,如果从顶点a到顶点b有路径,则称a和b是连通的
-
连通图:对于图中任意两个顶点都是连通的,则称G是连通图
-
连通分量:指的是无向图中的极大连通子图
例如上图,因为(a)可以分解为(b),所以说图G3有3个连通分量 -
强连通图、强连通分量:在有向图中,对于每一对从a到b和从b到a都存在路径,则称该图是连通图。有向图中的极大强连通子图称做有向图的强连通分量
例如此图有两个强连通分量,但是不能称作强连通图 -
生成树:首先,一个连通图的生成树是一个极小连通子图,它含有图中全部n个顶点和但只有足以构成一棵树的n-1条边(注意这个只有)
-
有向树:只有一个顶点的入度为0,其余顶点的入度均为1的有向图
例如下图就是一个有向树: