数据结构 图的基本介绍
图的定义
图都是由顶点和边构成的。采用形式化的定义,图G(Graph)由V(Vertex)和E(Edge)两个集合组成,记为G=(V,E),其中,V是顶点的有限集合,记为V(G),E是连接V中两个不同顶点(顶点对)的边的有限集合,记为E(G)。
通常,用字母或自然数(顶点的编号)来标识图中的顶点。约定用i(0≤i≤n-1)表示第i个顶点的编号。E(G)表示图G中边的集合,它确定了图G中数据元素的关系。E(G)可以为空集,当E(G)为空集时,图G只有顶点没有边。
- 有向图:
表示边的顶点对(或序偶)是有序的,则称G为有向图。在有向图中,代表边的顶点对通常用尖括号括起来,用于表示一条有向边(又称为弧),如<i,j>表示从顶点i到顶点j的一条边,用箭头表示,顶点i称为<i,j>的尾,顶点j称为<i,j>的头。 - 无向图:
代表边的顶点对(或序偶)是无序的,则称G为无向图。无向图中代表边的无序顶点对通常用圆括号括起来,用于表示一条无向边。如(i,j)表示顶点i与顶点j的一条无向边,(i,j)和(j,i)表示同一条边。
图的基本术语
一.端点和邻接点
- 无向图:
若存在一条边(i,j),则称顶点i和顶点j为该边的两个端点,并称它们互为邻接点。 - 有向图:
若存在一条边<i,j>,则称此边是顶点i的一条出边,同时也是顶点j的一条入边;分别称i和j为此边的起始端点(简称为起点)和终止端点(简称为终点);称顶点i邻接到顶点j,并称顶点j是顶点i的出边邻接点,顶点i是顶点j的入边邻接点。
二.顶点的度、入度和出度
- 无向图:
顶点所具有的边的数目称为该顶点的度。 - 有向图:
以顶点i为终点的入边数目称为该顶点的入度,以顶点i为起点的出边的数目称为该顶点的出度。一个顶点的入度和出度的和为该顶点的度。 - 定理:若一个图中有n个顶点和e条边,每个顶点的度为di(0≤i≤n-1),则有
e
=
1
2
∑
i
=
o
n
−
1
d
i
e =\frac{1}{2}\sum_{i=o}^{n-1}{d_i} \quad
e=21i=o∑n−1di
一个图中所有顶点的度之和等于边数的两倍,因为图中的每条边分别作为两个邻接点的度各记一次。
三.完全图
若有向图中的每两个顶点之间都存在着一条边,有向图中的每两个顶点之间都存在着方向相反的两条边,则称此图为完全图。
- 含有n个顶点的完全无向图有边 n ( n − 1 ) 2 \frac{n(n-1)}{2} 2n(n−1)
- 含有n个顶点的完全有向图有边 n ( n − 1 ) n(n-1) n(n−1)
四.稠密图和稀疏图
- 稠密图:
当一个图接近完全图时,称之为稠密图。 - 稀疏图:
当一个图含有较少的边数,即
①无向图有 e ≪ n ( n − 1 ) 2 e≪\frac{n(n-1)}{2} e≪2n(n−1)
②有向图有 e ≪ n ( n − 1 ) e≪n(n-1) e≪n(n−1)
五.子图
设有两个图G=(V,E)和G’=(V’,E’),若 V ′ ⊆ V V'\subseteq V V′⊆V,且 E ′ ⊆ E E'\subseteq E E′⊆E,则称G’是G的子图。
六.路径和路径长度
- 路径:
在一个图G=(V,E)中,从顶点i到顶点j的一条路径是一个顶点序列(i,i1,i2,…,im,j)。
① 无向图
边(i,i1)、(i1,i2)、…(im-1,im)、(im,j)属于E(G)
②有向图
边<i,i1>、<i1,i2>、…<im-1,im>、<im,j>属于E(G) - 路径长度:
指一条路径上经过的边的数目。 - 简单路径:
一条路径上除了开始点和结束点可以相同外,其余顶点均不相同。
七.回路或环
若一条路径上的开始点和结束点为同一个顶点,则称此路径为回路或环。
开始点和结束点相同的简单路径称为简单回路或简单环。
八.连通
在无向图或有向图G中,若从顶点i到顶点j有路径,则称顶点i和顶点j是连通的。
九.连通图和连通分量
- 若图G中的任意两个顶点i和j都连通,则称G为连通图,否则为称为非连通图。
- 无向图G中的极大连通图子图称为G的连通分量。任何连通图的连通分量只有它本身一个,而非连通图有多个连通分量。
十.强连通图和强连通分量
- 若图G中的任意两个顶点i和j,从顶点i到顶点j和从顶点j到顶点i都存在路径,则称图G是强连通图。
- 有向图G中的极大强连通图子图称为G的强连通分量。任何强连通图的强连通分量只有它本身一个,而非强连通图有多个强连通分量。
十一.关结点和重连通图
- 关结点:
假如在删除图G中的顶点i以及相关联的各边后,将图的一个连通分量分割成两个或多个连通分量,则称顶点i为该图的关结点。 - 重连通图
一个没有关结点的连通图称为重连通图
十二.权和网
- 权:
图中每一条边都可以附有一个对应的数值,这种与边相关的数值称为权。 - 网:
边上带有权的图称为带权图,也称为网。