前言
线性表中,数据元素仅有线性关系,每个数据元素只有一个前驱,一个后继。树形结构中,数据元素有着明显的层次关系,
上一层的数据元素可能和下一层多个元素(孩子结点)直接相关;
下一层的数据元素却只能和上一层中的一个元素(双亲结点)直接相关。图形结构中,结点之间的关系是任意的,任意两个元素之间都可能相关。
常用 定义和术语

-
顶点:图中的每一个数据元素。(图又可以叫做顶点集)
-
弧:V 是
顶点的有穷非空集合;VR 是两个顶点的关系集合。若 < v, w > ∈ VR,则 < v, w > 表示从 v 到 w 的一条弧。
弧尾:< v, w > 表示从 v 到 w 的一条弧v ----------> w,v 称为弧尾 / 初始点。
弧头:< v, w > 表示从 v 到 w 的一条弧v ----------> w,w 称为弧头 / 终端点。 -
有向图:图中的顶点关系都是有方向的关系,此时的图称为有向图。
有向图由顶点集和弧集构成。 -
无向图:若 < v, w > ∈ VR,必然有 < w, v > ∈ VR,即 VR 是对称的,则以
无序对 (v, w)代替这两个有序对,此时的图称为无向图。无向图由顶点集和边集构成。 -
边:无向图中,每一个无序对,构成一条边。

-
上图 G1 是
有向图。
V1 = { v1 , v2 , v3 , v4 }
VR1 = { <v1 , v2 > , < v1 , v3 > , < v3 , v4 > , < v4 , v1 > }
G1 = ( V1 , { VR1 } ) -
上图 G2 是
无向图
V2 = { v1 , v2 , v3 , v4 , v5 }
VR2 = { <v1 , v2 > , < v1 , v4 > , < v2 , v3 > , < v2 , v5 > , < v3 , v4 > , < v3 , v5 > }
G2 = ( V2 , { VR2 } ) -
完全图 & 有向完全图(任意两个顶点之间都有边 / 弧)
一个图中,有 n 个顶点,e 条边 / 弧,在不考虑顶点到自身的弧 / 边时,即对任意的 vi ≠ vj , 必然存在 < vi , vj > ∈ VR。
对于无向图来说,e 的取值范围是 0 到 n(n-1) / 2 。具有 n(n-1) / 2 条边的无向图称为完全图。
对于有向图来说,e 的取值范围是 0 到 n(n-1)。具有 n(n-1) 条弧的有向图称为有向完全图。 -
稀疏图:边 / 弧 很少的图,边数 v< n * log n
稠密图:边 / 弧 很多的图 -
有向网:弧上带有权的图。
无向网:边上带有权的图。 -
子图
假设有两个图,
G = ( V , { VR } )
G ’ = ( V ’ , { VR ’ } )
若 V ‘ ⊆ V 且 VR ’ ⊆ VR,
则称 G ‘ 为 G 的子图。
示例,如下


-
邻接点:对于无向图 G = ( V , { VR } ) 来说,若边 ( v , v ’ ) ∈ VR,则称顶点 v 和 v’ 互为邻接点。
-
依附:对于无向图 G = ( V , { VR } ) 来说,若边 ( v , v ’ ) ∈ VR,则称
边 ( v , v ' )依附于顶点 v 和 v ',或者说 边 ( v , v ’ ) 与 v ,v ’ 相关联 -
顶点的度:
对于无向图:和某个顶点 v 相关联的边的数目,记作 TD( V )
对于有向图:以顶点 v 为弧头的弧的数目称为顶点 v 的入度,记作 ID( v );以顶点 v 为弧尾的弧的数目称为 v 的出度,记作 OD( v ) ,此时 顶点 v 的度 TD( v ) = ID( v ) + OD( v ) -
若顶点 vi 的度记作 TD(Vi) ,那么一个有 n 个顶点,e 条边 / 弧的图,满足如下关系
e = Σ TD(Vi) / 2 -
路径:图中
一个顶点到另一个顶点的顶点序列。
有向图的路径是有向的,无向图的路径是无向的。
路径的长度:路径上的 边 / 弧 的数目。 -
回路 / 环:
第一个顶点和最后一个顶点相同的路径。 -
简单路径:序列中顶点不重复出现的路径。
-
简单回路 / 简单环:除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路。
-
连通:对于
无向图G,从顶点 v 到 顶点 v ‘ 有路径,则称 v 和 v ’ 是连通的。 -
连通图:
无向图中,任意两个顶点都是连通的。 -
连通分量:无向图中的极大连通子图。如下 G3 是非连通图,但它有 3 个连通分量。
-
非连通图都可以看作是若干个连通分量构成。

-
强连通图:对于
有向图,任意两个顶点之间都存在双向路径,则称 G 是强连通图。
强连通分量:对于有向图,有向图中的极大强连通子图称作有向图的强连通分量。 -
连通图的生成树 / 极小连通子图
是一个连通图的极小连通子图,包含图中全部的n个顶点,但只有n-1条边。
在生成树上添加一条边,必定构成一个环,因为这条边使得它依附的那两个顶点之间有了第二条路径.
一个有 n 个顶点的生成树有且仅有 n-1 条边。小于则一定是非连通图,大于则一定有环,等于也不一定就是生成树。 -
有向树:一个有向图只有一个顶点的入度为 0 ,其余顶点的入度均为 1 ,那么这个图就是棵有向树。
-
生成森林:一个有向图的生成森林由若干棵有向树组成,含有图中全部顶点,但只有足以构成若干棵不相交的有向树的弧。如下图

-
在图中,
顶点位置和邻接点位置是一个相对的概念。
图中的顶点不存在全序的关系,即无法将全部顶点排成一个线性序列,任何一个顶点都可以看成是第一个顶点。
顶点再图中的位置指的是 该顶点在人为的随意排列中的位置或者序号。
博客介绍了不同数据元素关系,包括线性、层次和任意关系。重点阐述图数据结构的常用定义和术语,如顶点、弧、有向图、无向图等,还介绍了完全图、稀疏图、稠密图等概念,以及路径、回路、连通性等相关内容。
1154

被折叠的 条评论
为什么被折叠?



