图的定义:
图(Graph) G由顶点集合V(G)和边集合E(G)构成。
说明: 对于n个顶点的图,对每个顶点连续编号,即顶点的编号为0~n-1。通过编号唯一确定一个顶点。
在图G中,如果代表边的顶点对是无序的,则称G为 无向图。用圆括号序偶表示无向边。
如果表示边的顶点对是有序的,则称G为 有向图。用尖括号序偶表示有向边。
在无向图中,若对所有的<v,w>∈E(G) ,有<w,v>∈E(G) ,即E(G)是对称,则用无序对(v,w) 表示v和w之间的一条边(Edge),因此(v,w) 和(w,v)代表的是同一条边。
例1: 设有有向图G1和无向图G2,形式化定义分别是:
G1=(V1 ,E1)
V1={a,b,c,d,e}
E1={<a,b>,<a,c>, <a,e>,<c,d>,<c,e> ,<d,a>,<d,b>,<e,d>}
G2=(V2 ,E2)
V2={a,b,c,d}
E2={(a,b), (a,c), (a,d), (b,d), (b,c), (c,d)}
图的基本概念:
完全无向图: 对于无向图,若图中顶点数为n ,用e表示边的数目,则 e ∈[0,n(n-1)/2] 。具有n(n-1)/2条边的无向图称为完全无向图。
是怎么得来的呢?
(n-1)+(n-2)+(n-3)+ .... +2+ 1 = n(n-1)/2
完全无向图另外的定义是:
对于无向图G=(V,E),若对所有的vi,vj ∈V ,当vi≠vj时,有(vi ,vj)∈E,即图中任意两个不同的顶点间都有一条无向边,这样的无向图称为完全无向图。
完全有向图: 对于有向图,若图中顶点数为n ,用e表示弧的数目,则 e∈[0,n(n-1)] 。具有n(n-1)条边的有向图称为完全有向图。
完全有向图另外的定义是:
对于有向图G=(V,E),若所有的vi,vj∈V ,当vi ≠vj时,有<vi ,vj>∈E∧<vj , vi >∈E ,即图中任意两个不同的顶点间都有一条弧,这样的有向图称为完全有向图。
有很少边或弧的图(e<n㏒n)的图称为 稀疏图,反之称为 稠密图。
权(Weight): 与图的边和弧相关的数。权可以表示从一个顶点到另一个顶点的距离或耗费。
子图和生成子图: 设有图G=(V,E)和G’=(V’,E’),若V’是V的子集,且E’是E的子集 ,则称图G’是G的子图;若V’=V且E’是E的子集,则称图G’是G的一个生成子图。
对于无向图G=(V,E),若边(v,w)∈E,则称顶点v和w 互为 邻接点,即v和w相邻接。边(v,w) 依附(incident) 于顶点v和w ,或者说顶点v和w “相关联” 。
与顶点vi相关的边的条数称作顶点vi的 度(degree),记为TD(vi)。
对有向图G=(V,E),若所有的vi ∈V ,图G中以vi作为起点的有向边(弧)的数目称为顶点vi的 出度(Outdegree),记为OD(vi) ;以vi作为终点的有向边(弧)的数目称为顶点vi的 入度(Indegree),记为ID(vi) 。顶点vi的出度与入度之和称为 vi的度,记为TD(vi) 。即:
TD(vi)=OD(vi)+ID(vi)
路径长度 是指路径上边或弧的数目。
若第一个顶点和最后一个顶点相同,则这条路径是一条 回路,也叫做 环。
若路径中顶点没有重复出现,则称这条路径为 简单路径。
在无向图中,如果从顶点vi到顶点vj有路径,则称vi和vj 连通。如果图中任意两个顶点之间都连通,则称该图为 连通图,否则,将其中的 极大连通子图 称为 连通分量。
在有向图中,如果对于每一对顶点vi和vj,从vi到vj和从vj到vi都有路径,则称该图为 强连通图;否则,将其中的 极大连通子图 称为 强连通分量。
生成树、生成森林: 一个连通图(无向图)的生成树是一个极小连通子图,它含有图中全部n个顶点和只有足以构成一棵树的 n-1条边,称为图的 生成树。
关于无向图的生成树的几个结论:
◆ 一棵有n个顶点的生成树有且仅有n-1条边;
◆ 如果一个图有n个顶点和小于n-1条边,则是非连通图;
◆如果多于n-1条边,则一定有环;
◆有n-1条边的图不一定是生成树。
有向图的生成森林 是这样一个子图,由若干棵有向树组成,含有图中全部顶点。
有向树 是只有一个顶点的入度为0 ,其余顶点的入度均为1的有向图,如图7-3所示。
网: 每个边(或弧)都附加一个权值的图,称为 带权图。带权的连通图(包括弱连通的有向图)称为 网或网络。网络是工程上常用的一个概念,用来表示一个工程或某种流程,如图7-4所示。