图的相关概念

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

    • 无向图: 图中任意两个顶点之间的边都是无向边(顶点之间的边没有方向)。
    • 有向图: 图中任意两个顶点之间的边都是有向边。

      注意:无向边用小括号“()”表示,而有向边则是用尖括号“<>”表示。
    • 无向完全图: 在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图。含有n个顶点的无向完全图有$n(n-1)/2$条边。
    • 有向完全图: 在有向图中,如果任意两个顶点之间都存在方向互为相反的两条弧,则称该图为有向完全图。含有n个顶点的有向完全图有$n×(n-1)$条边。
    • 网: 带权的图通常称为网.(图的边具有与它相关的数字叫做权,可以表示从一个顶点到另一个顶点的距离或耗费。)
    • 连通图: 在无向图中,对于图中任意两个顶点都是连通的(顶点i到顶点j有路径).
    • 强连通图: 在有向图中,对于图中任意两个顶点都是连通的。
    连通分量: 无向图中的极大连通子图称为连通分量。连通分量的概念强调:
    1.要是子图;
    2.子图要是连通的;
    3.连通子图含有极大顶点数;
    4.具有极大顶点数的连通子图包含依附于这些顶点的所有边。
  • 相关术语

    • 邻接点:一条边上的两个顶点。
    • 度: 顶点v的度(Degree)是和v相关联的边的数目。对于有向,$顶点的度=顶点的入度+顶点的出度$

      注意:
      1.无向图中所有顶点的度之和等于边数的2倍,有向图中所有顶点的入度之和等于所有顶点的出度之和。
      2.无论无向图还是有向图,顶点数n,边数e和度之间又如下关系:$E=(d[v1]+d[v2]+…+d[vn])/2$
    • 简单路径: 序列中顶点不重复出现的路径称为简单路径。
    • 简单回路: 除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路,称为简单回路或简单环。

代码实现

图的邻接矩阵

无向图:
clipboard.png

  • 某个顶点i的度,其实就是这个顶点i在邻接矩阵中第i行(或第i列)的元素之和。
  • 顶点i的所有邻接点就是将矩阵中第i行元素扫描一遍,值为1的为邻接点。

有向图:
clipboard.png

  • 顶点i的入度为第i列各数之和,出度为第i行各数之和。

网:
clipboard.png

邻接矩阵对于边数相对顶点较少的图,存在对存储空间的极大浪费的现象。所以这种存储方式不适合稀疏图。

图的邻接表

邻接表:数组与链表相结合的存储方式。
无向图:
clipboard.png

有向图:
clipboard.png

网图:
clipboard.png

$参考:https://www.zybuluo.com/guoxs/note/249812$$


wydong
40 声望5 粉丝

wyd