白金会棋牌

首页 > 正文

C语言:数据结构-图的概念

www.jaihinddefence.com2019-07-11
白金会官网

(1)无向图的定义

无向图是一个有序二进制组,表示为G,如图7-1(a)所示。

V是顶点集,E是关节点(无向边)的边集

G 1=

V(G1)={0,1,2,3,4,5}

E(G1)={(0,1),(0,2),(0,3),(0,4)(1,4),(2,4),(2,5),(3, 5),(4,5)}

(2)有向图的定义

有向图是有序二进制组,表示为G,如图7-1(b)所示。

V是顶点集,E是边集(有向边)

G2=

V(G2)={0,1,2,3,4}

E(G2)={,}

如果G2顶点的值用于表示其顶点集边集,则表示如下:

V(G2)={A,B,C,D,E}

E(G2)={,}

在日常生活中,图表的应用无处不在。如各种交通图,电路图,结构图,流程图等,太多不得不提了。

d2b4c94289364fefa013b426066f999e

无向图

abeb922d4e32491cb63236697cebbfcc

有向图

边是(3,0)和(3,5),v3的两个相邻点分别是v0和v5;

在有向图中,如果存在边,则边被称为顶点vi的Out Edge,以及顶点vj的In Edge; vi称为边缘的起始端,称为vi起点或起点,vj是此边的终点,称为终点; vi和vj称为相邻点,vj是vi的边缘外点,vi是vj的相邻点。如图7-1所示,在G2中,顶点C有两个边缘和,两个边缘和,顶点C的两个边缘相邻点是B和D,两个边缘相邻点是A和B;其他顶点也可以执行类似的分析。

无向图中的顶点v的程度被定义为以顶点作为终点的边的数量,表示为D(v)。如在图1中所示的G1中那样。在图7-1中,v0的顶点的度数是4,并且v1的顶点的度数是2.有向图中的顶点v的度数具有in和out的程度。 indegree度是顶点的内切边数,表示为ID(v); OutDegree是顶点的外侧。数字表示为OD(v);顶点v的程度等于其indegree和outdegree的总和,即D(v)=ID(v)+ OD(v)。在图7-1所示的G2中,顶点A的indegree为0,outdegree为2,度数为2;顶点C的indegree为2,outdegree为2,度数为4.

如果图中有n个顶点和e个边,则图的所有顶点的同一侧的度数满足以下关系:

2316f575d5fa4aa296a9b43af5955602

这很容易理解,因为每个边连接到两个顶点,因此两个顶点的度数增加1,并且总和增加2,所以所有顶点的度数是所有边的数量的两倍,或者边数都是顶点度数的一半。

如果在无向图中每两个顶点之间存在边,并且在有向图中每两个顶点之间存在两个相对边,则该图称为完整图。显然,如果完整图表是无向的,则图表包含

1/2 n(n-1)

带边;如果指向完整图形,则图形包含n(n-1)

侧。当图形接近完整图形时,它称为密集图形。相反,当图形包含较少的边时,它被称为稀疏图。图7-2中的G3是具有5个顶点的无向完整图,G4是具有6个顶点的稀疏图。

109d474273274f6795593ccba6508823

完整图和稀疏图

有两个图G=(V,E)和G'=(V',E'),如果V'是V的子集,即V'íV,E'是E的子集,即E'íE并且E'中边缘所涉及的顶点属于V',则G'是G的子图。例如,图7-2中所示的G3中的所有顶点和连接到v0的所有边构成子图。 G3,可以由G3中的顶点v0,v1,v2和它们之间的所有边组成。 G3的另一个子图。

在图G中,从顶点v到顶点v'的路径是顶点序列u1,u2,um,其中v=u1,v'=um,如果图是无向图,则(uj- 路径是c,e,a,b和d,其路径长度为4;路径a,b,e和a是简单的循环。路径长度为3;路径a,b,e,f,b是复杂路径,因为顶点b出现两次,包括从顶点b到b的循环。

在无向图G中,如果存在从顶点vi到顶点vj的路径,则称vi和vj是连通的。如果图G中的任何两个顶点连接,则G称为连通图,否则称为非连通图。无向图G的最大连通子图称为G的连通分量。连通图可以有许多连通分量,只要能连接所有顶点的子图是其连通分量,并且在非连通图中,每个连接的组件只能连接到其顶点的一部分,但不能连接到它的所有顶点。例如,上述示例中给出的图形G1和图形G3都是连接图形。图7-3(a)是一个包含三个连通分量的非连通图,分别绘制在图7-3(b),(c),(d)中,其中第一个连接顶点A,B,C的分量只要连接到三个顶点的所有子图都是连通分量,就可以有各种连通形式。当然,要连接三个顶点,至少需要两个顶点。

d35a47b367744cd89a05e64d7e1bd581

非连接图和连接组件

在有向图G中,如果存在从顶点vi到顶点vj的路径,则表示从vi到vj连接。如果图G中的任何两个顶点vi和vj被连接,即,存在从vi到vj以及从vj到vi的路径,则有向图G被称为强连通图。有向图G的极强连通子图称为G的强连通分量。强连通有向图包含至少一个强连通分量,非强连通有向图必须包含多个强连通分量。图7-4(a)包含三个强连接组件,对应于图7-4(b),(c)和(d)。

fef6b99df5ed496ea7935cfb89915459

有向图和强连通组件

在图中,每个边可以用某个含义的值标记,这称为边的权重,通常是非负实数。例如,对于反映城市交通路线的地图,边缘可以指示线的长度或等级;对于反映电子电路的图形,边缘可以表示端部之间的电阻,电流或电压;反映零件装配的图表,侧面的重量可以表示端点组装另一个端点所需的零件数量;对于反映项目进度的图表,右边缘可以表示从前一个子项目到下一个子项目的需求天数。侧面具有权重的图形称为加权图形,通常称为网络。图7-5中的G5和G6分别是无向加权图和有向加权图。

f92193f66bc0457a80191d728afb683c

无向加权图和有向加权图

热门浏览
热门排行榜
热门标签
日期归档