图的定义

图的定义

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

对于图的定义,我们需要明确几个注意的地方。

  1.  线性表中我们把数据元素叫元素,树中将数据元素叫结点 ,在图中数据元素,我们则称之为顶点 (Vertex) 。
  2.  线性表中可以没有数据元素,称为空表。树中可以没有结点,叫做空树。 那么对于图呢?在图结构中,不允许没有顶点。在定义中,若 V 是顶点的集合,则强调了顶点集合V有穷非空。
  3. 线性表中,相邻的数据元素之间具有线性关系,树结构中,相邻两层的结点具有层次关系,而图中,任意两个顶点之间都可能有关系,顶点之间的逻辑关系用边来表示,边集可以是空的。

各种图的定义

无向边:若顶点 Vi 到 Vj 之间的边没有方向,则称这条边为无向边 (Edge) ,用无序偶对 (Vi,Vj) 来表示。如果图中任意两个顶点之间的边都是无向边,则称该图为无向图 (Undirected graphs)。下图左边就是一个无向图,由于是无方向的,连接顶点 A 与 D 的边,可以表示无序队列(A,D),也可以写成 (D,A)。对于下图中的无向图 G1 来说, G1= (V1,{ E1 }),其中顶点集合 V1={ A,B,C,D }; 边集合 E1={ (A,B) ,(B,C) , (C,D), ( D,A) , (A,C) }。

有向边:若从顶点 Vi 到 Vj 的边有方向,则称这条边为有向边,也称为弧( Arc )。

用有序偶<Vi,Vj>来表示. Vi 称为弧尾 (Tail) , Vj称为弧头 (Head)。 如果图中任意两个顶点之间的边都是有向边,则称该图为有向图 (Directed grahs) 。 上图右边就是一个有向图。连接顶点 A 到 D 的有向边就是弧,A是弧尾,D 是弧头, <A, D>表示弧, 注意不能写成<D,A>。对于上图右边中的有向图 G2 来说, G2= (V2,{ E2 }) ,其中顶点集合 V2 = { A,B,C,D}; 弧集合 E2={ <A,D>,<B,A>,<C,A>,<B,C>}。

无向边用小括号 “()” 表示,而有向边则是用尖括号"<>"表示

若不存在顶点到其自身的边,且同一条边不重复出现,则称这样的图为简单图。

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

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

有些图的边或弧具有与它相关的数字,这种与图的边或弧相关的数叫做权 (Weight) 。这些权可以表示从一个顶点到另一个顶点的距离或耗费。这种带权的图通常称为网 (Network)。如下图:

子图:G=(V,E),G'=(V',E'),若V'是V的(真)子集,E'是E的(真)子集,且E'中的边仅与V'中的顶点相关联,则G'是G的(真)子图。

对于无向图 G = (V, { E } ) , 如果边 (v,v’) 属于E , 则称顶点 v 和 v’ 互为邻接点 (Adjacent) ,即 v 和 v’相邻接。边(v , v’)依附 (incident) 于顶点 v 和 v’,或者说(v,v’)与顶点 v 和 v’相关联。 顶点 v 的度 (Degree) 是和 v 相关联的边的数目,记为 TD (v)。例如上图左侧上方的无向图,顶点 A 与 B 互为邻接点,边 (A,B) 依附于顶点 A 与 B 上,顶点 A 的度为 3 。而此图的边数是 5 ,各个顶点度的和 =3+2+3+2=10,推敲后发现,边数其实就是各顶点度数和的一半,多出的一半是因为重复两次计数。

对于有向图 G = (V, { E } ),如果弧<v,v’>属于 E,则称顶点 v 邻接到顶点 v’,顶点 v’ 邻接自顶点 v。 弧<v,v’>和顶点 v,v’ 相关联。以顶点 v 为头的弧的数自称为 v 的入度 (InDegree) ,记为 ID (v); 以 v 为尾的弧的数目称为 v 的出度 (OutDegree) ,记为 OD (v);顶点 v 的度为 TD (v) =ID (v) + OD (v) 。 例如上图左侧下方的有向图,顶点 A 的入度是 2 (从 B 到 A 的弧,从 C 到 A 的弧) ,出度是 1 (从 A 到 D 的弧) ,所以顶点 A 的度为 2+1=3 . 此有向图的弧有 4 条,而各顶点的出度和 =1+2+1+0=4,各顶点的入度和=2+0+1+1=4.。

无向图 G = (V, { E } ) 中从顶点 v 到顶点 v’的路径( Path )是一个顶点序列( V=Vi0, Vi1, …,Vi m=v’) ,其中 (Vi j-1,Vi j) 属于 E, 1 <= j <= m。如下图中就列举了顶点 B 到顶点 D 四种不同的路径。

如果 G 是有向图,则路径也是有向的,顶点序列应满足<Vi j-1, Vi j> 属于 E, 1 <= j <= m。如下图,顶点 B 到 D 有两种路径。而顶点 A 到 B,就不存在路径。

树中根结点到任意结点的路径是唯一的, 但是图中顶点与顶点之间的路径却是不唯一的。

第一个顶点到最后一个顶点相同的路径称为回路或环 (Cycle)。 序列中顶点不重复出现的路径称为简单路径。除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路,称为简单回路或简单环。下图中两个图的粗线都构成环,左侧的环因第一个顶点和最后一个顶点都是 B ,但 C、 D、 A 没有重复出现,因此是一个简单环。 而右侧的环,由于顶点 C 的重复,它就不是简单环了。

在无向图 G 中,如果从顶点 v 到顶点 v’有路径,则称 v 和 v’是连通的。 如果对于图中任意两个顶点vi、 vj 属于 E, vi 和 vj 都是连通的,则称 G 是连通图 (Connected Graph)。 下图的左图 ,它的顶点 A 到顶点 B、 C、 D 都是连通的,但显然顶点 A 与顶点 E 或 F 就无路径,因此不能算是连通图。而下图右图,顶点 A、B、C、D 相互都是连通的,所以它本身是连通图。

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

  •  要是子图;
  •  子图要是连通的;
  •  连通子图含有极大顶点数;
  •  具有极大顶点数的连通子图包含依附于这些顶点的所有边。

在有向图 G 中,如果对于每一对 vi、vj 属于 V,从 vi 不等于 vj ,从 vi 到 vj 和 vj 到 vi 都存在路径,则称 G 是强连通图。 有向图中的极大强连通子图称做有向图的强连通分量。 如下图,左图并不是强连通图,因为顶点 A 到顶点 D 存在路径,而 D 到 A 不存在。 右图就是强连通图,而且显然右图是左图的极大强连接子图,即是它的强连通分量。

现在我们再来看连通图的生成树定义。

所谓的一个连通图的生成树是一个极小的连通子图 ,它含有图中全部的 n 个顶点, 但只有足以构成一棵树的 n -1 条边。比如下图的图 1 是一普通图,但显然它不是生成树,当去掉两条构成环的边后,比如图 2 或图 3 ,就满足 n 个顶点 n-1 条边且连通的定义了。 它们都是一棵生成树。从这里也可知道,如果一个图有 n 个顶点和小于 n - 1 条边,则是非连通图,如果它多于 n - 1 边条,必定构成一个环, 因为这条边使得它依附的那两个顶点之间有了第二条路径。比如图 2 和图 3 ,随便加哪两顶点的边都将构成环。 不过有 n - 1 条边并不一定是生成树,比如图 4。

如果一个有向图恰有一个顶点的入度为 0,其余顶点的入度均为 1,则是一棵有向树。对有向树的理解比较容易,所谓入度为 0 其实就相当于树中的根结点, 其余顶点入度为 1 就是说树的非根结点的双亲只有一个。一个有向图的生成森林由若干棵有向树组成,含有图中全部顶点,但只有足以构成若干棵不相交的有向树的弧。 如下图的图 1 是一棵有向图。去掉一些弧后,它可以分解为两棵有向树,如图 2 和图 3 ,这两棵就是图 1 有向图的生成森林。

图的定义与术语总结

  1. 图按照有无方向分为无向图和有向图。无向图由顶点和边构成,有向图由顶点和弧构成。弧有弧尾和弧头之分。
  2. 图按照边或弧的多少分稀疏图和稠密图。如果任意两个顶点之间都存在边叫完全图 ,有向的叫有向完全图。若无重复的边或顶点到自身的边则叫简单图。
  3. 图中顶点之间有邻接点、依附的概念。无向图顶点的边数叫做度,有向图顶点分为入度和出度。
  4. 图上的边或弧上带权则称为网。
  5. 图中顶点间存在路径,两顶点存在路径则说明是连通的,如果路径最终回到起始点则称为环, 当中不重复叫简单路径。若任意两顶点都是连通的,则图就是连通图, 有向则称强连通图。 图中有子图 ,若子图极大连通则就是连通分量, 有向的则称强连通分量。
  6. 无向图中连通且 n 个顶点 n - 1 条边叫生成树。有向图中一顶点入度为 0 其余顶点入度为 1 的叫有向树。 一个有向图自若干棵有向树构成生成森林。
     
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值