图的定义
图是一种较线性表和树更加复杂的数据结构。在图形结构中,结点之间的关系可以是任意的,图中任意两个数据之间都可能相关。
图(graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是
图G中边的集合。
- 数据元素 线性表(元素)、树(结点)、图(顶点)
- 空表(线性表0元素)、空树(0结点)、空图?(不允许,顶点集合V有穷非空)
- 线性表中相邻数据元素之间具有线性关系;树中相邻两层具有层次关系;图中任意两个顶点之间都可能有关系,顶点之间的逻辑关系用边来表示,边集可以是空的。
无向图
两个顶点之间的边没有方向,称这条边为无向边(Edge),用无序偶对(vi,vj)表示。
无向图表示:
- 无向图:G1 = (V1,{E1});
- 顶点集合:V1 = {A,B,C,D};
- 边集合:E1 = {(A,B),(B,C),(C,D),(D,A),(A,C)}
有向图
两个顶点之间有方向,则称这条边为有向边,也称为弧(Arc)
有向图表示:
- 有向图: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)条边
结论:
- 对于具有n个顶点和e条边数的图,无向图0<= e <= n(n-1)/2;有向图0<= e <= n(n-1)
- 有很少条边或弧的图称为稀疏图,反之称为稠密图(相对而言)
权和网
有些图的边或弧具有与它相关的数字,这种与图的边或弧相关的数叫作权(Weight)。
这些权可以表示从一个顶点到另一个顶点的距离或者损耗。
带权的图通常称为网。
上图中的权就是两地的距离。
子图
假设有两个图 G1 = (V1,{E1})和G2 = (V2,{E2}),如果V2 <=(被包含) V1,E2 <=(被包含) E1,则称G2为G1的子图。
顶点与边之间的关系
邻接点
对于无向图 G = (V,{E});如果边(vv1) 属于 E,则称顶点vv1互为邻接点,即v与v1相邻接。
边vv1依附于顶点v和v1,或者说(vv1)与顶点v和v1相关联。
度
顶点v的度是和v相关联的边的数目,记为TD(v)
总结:边数其实就是各顶点度数和的一半。公式如图所示。
入度与出度
对于有向图 G = (V,{E}),如果弧<v,v1> 属于 E,则称顶点v邻接到顶点v1,顶点v1邻接自顶点v。弧<v,v1>和顶点v,v1相关联。
以v为头的弧的数目称为v的入度,记为ID(v),以v为尾的弧的数目称为v的出度,记为OD(v)。
顶点v的度为TD(v) = ID(v) + OD(v)
有向图中各顶点的入度之和 = 出度之和
路径
无向图路径是一个顶点序列,B到D的四种不同路径
有向图的路径也是有向的,B到D有两种路径,A到B不存在路径。
树中根结点到任意结点的路径是唯一的,但图中顶点与顶点之间的路径确不是唯一的。
路径长度
路径长度是路径上的边或弧的数目
回路和环
第一个顶点到最后一个顶点相同的路径称为回路或环。
序列中顶点不重复出现的路径称为简单路径。
除第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路,称为简单回路或者简单环。
左边粗线为简单环,右边因为C出现了两次,所以不是简单环。
连通图
任意两个顶点如果有路径,则称该图为连通图。
如图所示,左图存在两个顶点之间没有路径,所以不是连通图。右图是连通图。
连通分量
无向图中的极大连通子图称为连通分量。
连通分量
- 是子图
- 子图要连通
- 连通子图含有极大顶点数
- 具有极大顶点数的连通子图包含依附于这些顶点的所有边
强连通图 强连通分量
在有向图G中,对于每一对v1 v2 属于 V,v1 <> v2,从v1到v2和从v2到v1都存在路径,则称G是强连通图。
有向图中的极大强连通子图称做有向图的强连通分量。
连通图的生成树
一个连通图的生成树是一个极小的连通子图,它含有图中全部的n个顶点,但只有足以构成一棵树的n-1条边。
图定义与术语总结
-
图按有无方向分
- 无向图
- 顶点
- 边
- 有向图
- 顶点
- 弧
- 弧尾
- 弧头
- 无向图
-
图按边或弧的多少分
- 稀疏图
- 稠密图
如果任意两个顶点之间都存在边叫完全图,有向的叫有向完全图。
图中顶点之间有邻接点、依附的概念。
无向图顶点的边数叫作度,有向图顶点分为入度和出度。
图上的边或弧上带权则称为网。
图中顶点间存在路径,两顶点存在路径则说明是连通的,如果路径最终回到起始点则称为环,当中不重复叫简单路径。若任意两顶点都是连通的,则图就是连通图,有向则称为强连通图。图中有子图,若子图极大连通则就是连通分量,有向的则称强连通分量。
无向图中连通且n个顶点n-1条边叫生成树。有向图中一顶点入度为0其余顶点入度为1的叫有向树。一个有向图由若干棵有向树构成生成森林。