图( Graph)是一种较线性表和树更为复杂的非线性结 构。在线性结构中,结点之间的关系是线性关系,除开 始结点和终端结点外,每个结点只有一个直接前趋和直 接后继。在树形结构中,结点之间的关系实质上是层次 关系,同层上的每个结点可以和下一层的零个或多个结 点(即孩子)相关,但只能和上一层的一个结点(即双 亲)相关(根结点除外)。然而在图结构中,对结点 (图中常称为顶点)的前趋和后继个数都是不加限制的, 即结点之间的关系是任意的。图中任意两个结点之间都 可能相关。由此,图的应用极为广泛,特别是近年来的 迅速发展,已渗透到诸如语言学、逻辑学、物理、化学、 电讯工程、计算机科学以及数学的其它分支中
图 图(Graph)是一种较线性表和树更为复杂的非线性结 构。在线性结构中,结点之间的关系是线性关系,除开 始结点和终端结点外,每个结点只有一个直接前趋和直 接后继。在树形结构中,结点之间的关系实质上是层次 关系,同层上的每个结点可以和下一层的零个或多个结 点(即孩子)相关,但只能和上一层的一个结点(即双 亲)相关(根结点除外)。然而在图结构中,对结点 (图中常称为顶点)的前趋和后继个数都是不加限制的, 即结点之间的关系是任意的。图中任意两个结点之间都 可能相关。由此,图的应用极为广泛,特别是近年来的 迅速发展,已渗透到诸如语言学、逻辑学、物理、化学、 电讯工程、计算机科学以及数学的其它分支中
基本定义和术语 若图G中的每条边都是有方向的,则称G为有向图 ( Digraph)。在有向图中,一条有向边是由两个顶点 组成的有序对,有序对通常用尖括号表示。例如 V>表示一条有向边,v是边的始点(起点),v是边 的终点。因此,<v,v>和<v,v>是两条不同的有 向边。有向边也称为弧(Arc),边的始点称为弧尾 (Tai),终点称为弧头(Head) 图G由两个集合V和E组成,记为G=(V,E),其中v是 顶点的有穷非空集合,E是V中顶点偶对(称为边)的 有穷集。通常,也将图G的顶点集和边集分别记为v(G) 和F(G)。E(G)可以是空集,若E(G)为空,则图G只有顶 点而没有边,称为空图
基本定义和术语 • 若图G中的每条边都是有方向的,则称G为有向图 (Digraph)。在有向图中,一条有向边是由两个顶点 组成的有序对,有序对通常用尖括号表示。例如,<vi, vj>表示一条有向边,vi是边的始点(起点),vj是边 的终点。因此,<vi,vj>和<vj,vi>是两条不同的有 向边。有向边也称为弧(Arc),边的始点称为弧尾 (Tail),终点称为弧头(Head)。 • 图G由两个集合V和E组成,记为G=(V,E),其中v是 顶点的有穷非空集合,E是V中顶点偶对(称为边)的 有穷集。通常,也将图G的顶点集和边集分别记为V(G) 和E(G)。E(G)可以是空集,若E(G)为空,则图G只有顶 点而没有边,称为空图
若(v,v)是一条无向边,则称顶点v和v互为邻接点 ( Adjacent,或称v和v相邻接;称(v,y)关联( Incident) 于顶点v和v,或称(v;,v,)与顶点v和v相关联。如图7 1中Gn,与顶点V相邻接的顶点是v,V和v,而关联于 顶点v2的边是(v,v2),(v2,V3)和(2,V)。若<v,y >是一条有向边,则称顶点v邻接到v顶点v邻接于 点v并称边<v,v>关联于v和或称<v,w>与顶 点v和v相关联。如图71中G1,关联于顶点v的边是< v1>和< 无向图中顶点v的度( Degree是关联于该顶点的边的数 目,记为D()。若G为有向图,则把以顶点v为终点的 边的数目,称为v的人度( Indegree),记为ID();把以 顶点v为始点的边的数目,称为v的出度( outdegree,记 为OD(V);顶点v的度则定义为该顶点的入度和出度之 和,即D()=ID(v)十OD(y)
若(vi,vj )是一条无向边,则称顶点vi和vj互为邻接点 (Adjacent),或称vi和vj相邻接;称(vi,vj )关联(Incident) 于顶点vi和vj,或称(vi,vj )与顶点vi和vj相关联。如图7- 1中G2,与顶点vl相邻接的顶点是v2,v3和v4,而关联于 顶点v2的边是(vl,v2 ),(v2,v3 )和(v2,v4 )。若<vi,vj >是一条有向边,则称顶点vi邻接到vj ,顶点vj邻接于顶 点vi ,并称边<vi,vj>关联于vi和vj或称<vi,vj>与顶 点vi和vj相关联。如图7-1中Gl,关联于顶点v2的边是< v1,v2>,<v2,vl>和<v2 ,v3>。 无向图中顶点v的度(Degree)是关联于该顶点的边的数 目,记为D(v)。若G为有向图,则把以顶点v为终点的 边的数目,称为v的人度(1ndegree),记为ID(v);把以 顶点v为始点的边的数目,称为v的出度(outdegree),记 为OD(v);顶点v的度则定义为该顶点的入度和出度之 和,即D(v)=ID(v)十OD(v)
在无向图G中,若存在一个顶点序列 Vp2 vil?v2…,vm,vq, 使得(vpv),(vnY2),…,(vm,v)均属于E(G),则 称顶点vn到v存在一条路径(Path)。若G是有向图,则 路径也是有向的,它由E(G)中的有向边≤Vp, 1,.V2,…,<Vm,V>组成。路径长度定义为该路 径上边的数目。若“条路径上除了v和v可以相同外 其余顶点均不相同,则称此路径为一条简单路径。起 点和终点相同(vn=v)的简单路径称为简单回路或简单 环(Cyle)。例如,在图G2中顶点序列v,v2,v3,v4是 条从顶点v到顶点v的长度为3的简单路径;顶点序列 V12V2,Va,V,v32是一条从顶点v到顶点v2的长度为4的 路径,但不是简单路径;顶点序列v,v2,v4,v是 个长度为3的简单环。在有向图G中,顶点序列v,V2, V是一个长度为2的有向简单环
在无向图G中,若存在一个顶点序列vp ,vi1,vi2…,vin,vq, 使得(vp,vil),(vi1,vi2),…,(vin,vq )均属于E(G),则 称顶点vp到vq存在一条路径(Path)。若G是有向图,则 路径也是有向的,它由E(G)中的有向边<vp,vil>,< vil,vi2>,…,<vin,vq>组成。路径长度定义为该路 径上边的数目。若一条路径上除了vp和vq可以相同外; 其余顶点均不相同,则称此路径为一条简单路径。起 点和终点相同(vp =vq )的简单路径称为简单回路或简单 环(Cycle)。例如,在图G2中顶点序列vl ,v2,v3,v4是一 条从顶点vl到顶点v4的长度为3的简单路径;顶点序列 vl ,v2,v4,vl,v3是一条从顶点vl到顶点v3的长度为4的 路径,但不是简单路径;顶点序列vl,v2,v4,vl是一 个长度为3的简单环。在有向图Gl中,顶点序列vl,v2, vl是一个长度为2的有向简单环
在一个有向图中,若存在一个顶点v,从该顶点有路径可以到达图中 其它所有顶点,则称此有向图为有根图,v称作图的根。 在无向图G中,若从顶点v到顶点v有路径(当然从v到v也一定有路 径),则称v和v是连通的。若VG中任意两个不同的顶点v和y都 连通即有路径),则称G为连通图 Connected Graph)。例如,图G2 和G3是连通图。 无向图G的极大连通子图称为G的连通分量 (connected Component)。 显然,任何连通图的连通分量只有一个,即是其自身,而非连通 的无向图有多个连通分量。例如,图7-4中的G4是非连通图,它有 两个连通分量H和H2 在有向图G中,若对于v(G中任意两个不同的顶点v和v,都存在 从v到v以及从v到v的路径,则称G是强连通图。有向图G的极大 强连通子图称为G的强连通分量。显然,强连通图只有一个强连 通分量,即是其自身。非强连通的有向图有多个强连通分量。例 如图7-1中的G不是强连通图,因为v到v2没有路径,但它有两个 强连通分量
在一个有向图中,若存在一个顶点v,从该顶点有路径可以到达图中 其它所有顶点,则称此有向图为有根图,v称作图的根。 在无向图G中,若从顶点vi到顶点vj有路径(当然从vj到vi也一定有路 径),则称vi和vj是连通的。若V(G)中任意两个不同的顶点vi和vj都 连通(即有路径),则称G为连通图(Connected Graph)。例如,图G2 和G3是连通图。 无向图G的极大连通子图称为G的连通分量(connected Component)。 显然,任何连通图的连通分量只有一个,即是其自身,而非连通 的无向图有多个连通分量。例如,图7-4中的G4是非连通图,它有 两个连通分量Hl和H2。 在有向图G中,若对于V(G)中任意两个不同的顶点vi和vj,都存在 从vi到vj以及从vj到vi的路径,则称G是强连通图。有向图G的极大 强连通子图称为G的强连通分量。显然,强连通图只有一个强连 通分量,即是其自身。非强连通的有向图有多个强连通分量。例 如图7-1中的Gl不是强连通图,因为v3到v2没有路径,但它有两个 强连通分量