本人比较弱,讲得不好的地方,还请各位dalao指正。文章有部分内容参考于网络。

参考链接:图结构算法学习(一)——有向图-CSDN博客

图论基本概念 (1):无向图和有向图 - 知乎

一、有向图与无向图

首先,图分为有向图和无向图。

我们先来看无向图

1.1.1 无向图 (graph)

无向图  G 由点集 V(G) 和 边集 E(G)  组成,记为 G(V,E),其中点集 V(G) 不能为空集,而边集 E(G) 可以是空集。边集中的元素边是无向的,由点 uv 组成,记为 uv

  • 点集 V(G) 中元素个数称为无向图  的阶(order)。
  • 边集 E(G) 中元素个数称为无向图  的大小或尺寸(size)。
  • 若边集 E(G) 中的元素 e 由点 uv 组成,则称点 uv 相邻,边 eu v 关联。
  • 若边集 E(G) 中的两条边共用一个点,则称这两条边相邻。

为了对上述概念予以说明,请看如下图所示的无向图 G.

V(G) = \left \{ V_1,V_2,V_3,V_4 \right \}, E(G) = \left \{ V_1,V_2,V_3,V_4 \right \};


接下来我们来讲有向图

1.1.2 有向图(Directed Graph)

有向图是一种图结构,由一组顶点和一组有方向的边组成。每条边连接一对有序的顶点,表示从一个顶点指向另一个顶点。关键概念包括:

有向图 D 由点集 V(D) 和 有向边集 E(D) 组成,记为 D(V,E),其中点集 V(D) 不能为空集,而边集 E(D) 可以是空集。边集中的元素边是有向的,由点 UV 组成,记为 U->V

  • (u,v)(v,u) 都是有向图 D 的边,则称 D 是对称的。即这条边是双向的,称为双向边
  • 若取消有向图 D 的方向性和删除可能产生的重边,则有向图 D 变为无向图 G,称为有向图 的基本图 (underlying graph)。
    有向图示例(带边权)

    注意:自环(起点和终点为同一顶点),此时出度算一度,入度也算一度。


    如上图所示,顶点A的出度为2,入度为1,度为3

    有向边:一条有向边的第一个顶点称为它的头,第二个顶点称为它的尾。将有向边画为由头指向尾的一个箭头。
    有向环:一条至少含有一条边,且起点和终点相同的有向路径。
    有向路径:由一系列顶点组成,对于其中的每个顶点都存在一条有向边,从它指向序列中的下一个顶点。
    注意:一副有向图中两个顶点v和w可能存在以下四种关系:
    1:没有边相连;
    2:存在从v到w的边v->w;
    3:存在从w到v的边w->v;
    4:即存在w到v的边,也存在v到w的边,即双向链接;

那很快就有人说了:该怎么存图呢


二、存图

邻接矩阵


邻接矩阵的定义


设图G=(V,E),其中顶点集V=v1,v2,…,vn,边集 E=e1,e2,…,eε。用aij表示顶点vi与顶点vj之间的边数,可能取值为0,1,2,…,称所得矩阵A=A(G)=(aij)n×n为图G的邻接矩阵。
邻接矩阵可以描述有向图和无向图。
翻译:邻接矩阵是用来表示各个顶点之间连接关系的数组

邻接矩阵表示法
第一步:建立一个顶点表(记录各个顶点信息)和一个邻接矩阵(表示各个顶点之间关系)。
设图A=(V,E)n个顶点,则顶点表为

懂了不,就这样了!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐