第7章 图的基本概念

图(Graph)是由顶点的有穷非空集合顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。

7.2 图的定义

线性表:数据元素之间是被串起来的,仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继,是一对一的关系。

树:数据元素之间有明显的层次关系,每一层上的数据元素可能和下一层中多个元素相关,但只能和上一层中一个元素相关,这和一对父母可以有多个孩子,但每个孩子只有一对父母一个道理,是一对多的关系。

图:比线性表和树都要复杂,节点之间关系是任意的,图中任意两个数据元素之间都可能相关。

树可以看成是连通的没有回路的图,可看做一种特殊图。其实线性表可以看成是一种特殊的树。

线性表中我们把数据元素叫做元素,树中将数据元素叫做结点,在图中数据元素,我们则称之为顶点Vertex)。

线性表中可以没有数据元素,称为空表。树中可以没有结点,叫做空树。在图结构中,不允许没有顶点,但边可以为空。因此在图的定义中强调有穷非空

线性表中,相邻数据元素之间具有线性关系,树结构中,相邻两层结点之间有层次关系,而图中,任意两个顶点之间都有可能有关系,顶点之间的逻辑关系用边来表示,边集可以为空的。

7.2.1各种图定义

无向边:若顶点ViVj之间的边没有方向,则称这条边为无向边(Edge),用无序偶对(ViVj)来表示。

无向图:如果图中任意两个顶点之间的边都是无向边,则称该图为无向图。由于是无方向的,连接顶点A和连接顶点D的边,可以表示成无序对(AD),也可以表示成(DA)。

 

对于上面的无向图G来说,G=VE),其中顶点集合V={A,B,C,D};边集合E={AB),(BC),(CD),(AC),(AD)}

有向边:若同顶点ViVj的边有方向,则称这条边为有向边,也称为弧(Arc)。用有序偶<ViVj>来表示,Vi称为弧尾,Vj称为弧头。

有向图:如果任意两个顶点之间的边都是有向边,则称该图为有向图。

对于上面的有向图,连接顶点AB的有向边就是弧,A是弧尾,B是弧头,<AD>表示弧,不能写成<DA>G = VE);其中顶点集合V={ABCD};弧集合E={<AB>,<BC>,<CD>,<DA>,<CA>}

注意:无向边用小括号“()”来表示,有向边用尖括号“<>”来表示。

简单图:在图中,若不存在顶点到其自身的边,且同一条边不重复出现,则称这样的图为简单图。我们课程里讨论的图都是简单图。

完全无向图:如果任意两个顶点之间都存在边,则称该图为完全无向图。含有n个顶点的无向完全图有n*(n-1)/2条边。

完全有向图:如果任意两个顶点之间都存在方向互为相反的两条弧,则称该图为有向完全图。含有n个顶点的完全有向图有n*(n-1)条边。

从上面可以得到结论,对于具有n个顶点和e条边的图,无向图0 <= e <= n*(n-1)/2。有向图0 <= e <= n*(n-1)

稀疏图:有很少条边或弧的图,反之称为稠密图。

(Weight):与图的边或弧相关的数叫做权。权可以表示从一个顶点到另一个顶点之间的距离或耗费。

网:带权的图。

子图:假设有两个图G=VE),G1=V1E1),如果V1包含于VE1包含于E,则称G1G的子图(Subgraph)。

7.2.2图的顶点与边间关系

1、无向图

对于无向图G=VE)。如果边(VV1)属于E,则称顶点VV1互为邻接点,即VV1相邻接。

顶点的度:顶点V的度是和V向关联的边的数目。

边的数目是各顶点度数的和的一半。

2、有向图

对于有向图G=VE)。如果弧<VV1>属于E,则称顶点V邻接到顶点V1,顶点V1邻接自顶点V。弧<VV1>和顶点VV1相关联。

弧的入度:以顶点V为头的弧的数目称为V的入度。

弧的出度:以顶点V为尾的弧的数目称为V的出度。

边的数目 = 各顶点的入度和 = 各顶点的出度和。

路径:顶点V到顶点V1所经过的顶点序列(如:VV2V3V1

树中根节点到任意节点的路径是唯一的。但是图中顶点与顶点之间的路径却不是唯一的,有可能不存在路径。

路径的长度:路径上的边或弧的数目。

回路或环:第一个顶点和最后一个顶点相同的路径称为回路或环(Cycle)。

简单路径:序列中顶点不重复出现的路径称为简单路径。

简单回路:除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路,称为简单回路或简单环。

7.2.3连通图的相关术语

在无向图中,如果从顶点V到顶点V1有路径,则称VV1是连通的。如果对于图中任意两个顶点ViVjViVj都是连通的,则称G是连通图。

连通分量:无向图中的极大连通子图。注意连通分量的概念,它强调:

1要是子图。

2子图要是连通的。

3连通子图含有极大顶点数(再多一个顶点就不在连通了)

4具有极大顶点树的连通子图包含依附于这些顶点的所有边。

结论:(1)非连通图应该至少有两个连通分量。

在有向图中,如果对于每一对ViVjVi不等于Vj,从ViVj和从VjVi都存在路径,则称G是强连通图。

有向图中的极大强连通子图称作有向图的强连通分量。

生成树:一个连通图的生成树是一个极小的连通子图,它包含图中全部的n个顶点,但只有足以构成一棵树的n-1条边。

有向树:如果一个有向图恰有一个顶点入度为0,其余顶点的入度为1,则是一棵有向树。所谓入度为0就是相当于树中的根节点,其余顶点入度为1就是说树的非根节点的双亲只有一个。

生成森林:一个有向图的生成森林由若干棵有向树组成,含有图中全部节点,但只有足以构成若干棵互不相交的有向树的弧。

 

你可能感兴趣的:(线性表)