数据结构之图的相关概念

        图是由顶点的有穷非空集合和顶点之间的边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中的边的集合。顶点为图中的数据元素。图中任意两个顶点之间都可能有关系,顶点之间的逻辑关系用边来表示,而边集可以为空,即两顶点之间无逻辑关系。如下图所示,即为一个标准的图:

        无向边:若顶点A到顶点B之间的边没有方向,则称这条边为无向边,用无序偶对(A,B)表示。如果图中任意两个顶点之间的边都是无向边,则称该图为无向图。上图所示的就是一个无向图,由于边是无方向的,所以连接顶点1和2的边,可表示成无序对(1,2),也可表示成无序对(2,1)。对于上图可表示为G=(V,E),其中顶点集合V={1,2,3,4,5,6,7,8,9},边集合E={(1,2),(1,3),(2,4),(2,5),(2,8),(3,5),(3,6),(4,8),(4,9),(5,7),(5,9),(6,7),(6,9),(7,9),(8,9)}。

        有向边:若从顶点A到B的边有方向,则称这条边为有向边,也可称为弧。用有序偶对<A,B>来表示,A称为弧尾,B称为弧头。如果图中任意两个顶点之间的边都是有向边,则称该图为有向图。下图所示即为有向图。连接顶点B到A的有向边就是弧,B是弧尾,A是弧头,有序偶对<B,A>表示弧。由于是有向图,所以<B,A>和<A,B>代表的是两条不同的弧。对于下图的有向图来说,其顶点集合为V={A,B,C,D},边的集合,即弧的集合为E={<A,D>,<B,A>,<B,C>,<C,A>}。

        简单图:在图中,若不存在顶点到其自身的边,且同一条边不重复出现,则称这样的图为简单图。显然,以上两图都是简单图。

        在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图。如下图左图所示,即为无向完全图。含有n个顶点的无向完全图有\frac{n*(n-1)}{2}条边。因为每个顶点都要与除它以外的顶点连线,那么一个顶点就需要连接(n-1)条线,又因为是无向图,所以从A到B的边和从B到A的边是同一条,因此再整体除以2。

                                                                           

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

        由此可知,对于具有n个顶点和e条边数的图,无向图0\leq e\leq \frac{n*(n-1)}{2},有向图0\leq e\leq n*\left ( n-1 \right )

        有很少条边或弧的图称为稀疏图,反之称为稠密图。一般情况下,我们认为当E\ll V^{2}(边数远小于顶点数的平方)时,为稀疏图,当E\doteq V^{2}(边数与顶点数的平方约等)时,为稠密图。

        有些图的边或弧具有与它相关的数字,这种与图的边或弧相关的数叫做权,表示从一个顶点到另一个顶点的距离或花费或时间。我们称这种带权的图为网。如下图所示,即为网。

假设有两个图G=\left ( V,\left \{ E \right \} \right )和 {G}'=\left ( {V}',\left \{ {E}' \right \} \right ),如果{V}'\subseteq V并且{E}'\subseteq E,则称{G}'为G的子图,如下图所示。

        对于无向图G=\left ( V,\left \{ E \right \} \right ),如果边\left ( v,{v}' \right )\subseteq E,则称顶点v{v}'互为邻接点,即v{v}'相邻接。边\left ( v,{v}' \right )依附于顶点v{v}',或者说\left ( v,{v}' \right )与顶点v{v}'相关联。顶点v的度是和v相关联的边的数目。以文中的无向完全图为例,顶点A与其它三个顶点都互为邻接点,每个顶点的度都为3。

        对于无向图G=\left ( V,\left \{ E \right \} \right ),如果边\left ( v,{v}' \right )\subseteq E,则称顶点v邻接到顶点{v}',顶点{v}'邻接自顶点v。弧\left ( v,{v}' \right )和顶点v{v}'相关联。以顶点v为头的弧的数目称为顶点v的入度;以顶点v为尾的弧的数目称为顶点v的出度。顶点v的度是出度与入度数目之和。以文中的有向完全图为例,每个顶点的度都为6,入度都为3,出度也都为3。

        无向图G=\left ( V,\left \{ E \right \} \right )中,从顶点v到顶点{v}'的路径是一个顶点序列。之所以说是一个顶点序列,是因为从顶点v{v}'的路径不止一条。路径的长度是路径上的边或弧的数目。对于有向图来说,如果有条路径是从顶点v到顶点{v}'的,即表示存在从顶点v到顶点{v}'的路径,但不表示存在着从顶点{v}'到顶点v的路径。第一个顶点到最后一个顶点相同的路径称为回路或环。序列中顶点不重复出现的路径称为简单路径。除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路,称为简单回路或简单环。如下图所示,两图都构成了环,左图是一个简单环,右图不是简单环。

                                                                

        在无向图G中,如果从顶点v到顶点{v}'有路径,则称顶点v到顶点{v}'是连通的如果对于图中任意两个顶点都是连通的,则称G是连通图。如下图所示,左图为非连通图,右图为连通图。

        无向图中的极大连通子图称为连通分量。连通分量首先必须要是子图,其次子图要连通,还有连通子图要含有极大顶点数,同时具有极大顶点数的连通子图包含依附于这些顶点的所有边。上图中的左图虽然不是连通图,但是却有两个连通分量,即下图。

                                                                               

        在有向图中,如果对于每一个顶点都存在到除它以外的所有顶点的路径,则称G是强连通图。有向图中的极大强连通子图称为有向图的强连通分量。如下图所示,左图并不是强连通图,右图是强连通图,而且,右图是左图的极大连通子图,即是它的强连通分量。

        一个连通图的生成树是一个极小的连通子图,它含有图中全部的n个顶点,但是只有足以构成一棵树的n-1条边。如果一个图有n个顶点和小于n-1条边,则是非连通图。如果一个有向图恰有一个顶点的入度为0,而其余顶点的入度都是1,则这是一棵有向树。入度为0即相当于根结点,入度为1则说明树的非根结点的双亲只有一个。一个有向图的生成森林由若干棵有向树组成,含有图中全部顶点,但是只有足以构成若干棵不相交的有向树的弧。

 

 

以上即是与图相关的概念~~

文中图片来源于程杰先生所著的《大话数据结构》,有些图有所改变,在此表示感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值