了解图属性

图是通过边相互连接的顶点或节点的集合。这些边可以是有序的,也可以是无序的,这意味着边可以是有方向的,也可以是无方向的,这也被称为双向边。我们用顶点 V 和边 E 组成的集合 G 来表示图,如下所示:

G = (V, E)
image 2023 11 08 15 07 15 248

在上图中,我们有五个顶点和六个边:

V = {A, B, C, D, E}
E = {AB, AC, AD, BD, BE, CD, DE}

如果我们看前面的图,A 和 B 之间的连通性可以表示为 AB 或 BA,因为我们还没有定义连通性的方向。图数据结构与树数据结构的一个显著区别是,图数据结构可以形成循环或环路,而树数据结构则不能。与树形数据结构不同,我们可以从图形数据结构中的任意顶点开始。此外,我们可以在任意两个顶点之间建立直接边,而在树形数据结构中,只有当子节点是父节点的直系后代时,两个节点才能相连。

与图有关的属性和关键词多种多样。在进一步讨论图及其应用之前,我们将探讨这些术语。

顶点

图中的每个节点称为顶点。通常,顶点用圆圈表示。在我们的图中,节点 ABCDE 就是顶点。

边缘

边是两个顶点之间的连接。通常,它由两个顶点之间的一条线表示。在上一幅图中,ABACADBDCDBE 以及 DE 之间都有边。边有三种类型:

  • 定向边:如果一条边上标有箭头,则表示它是一条有向边。有向边是单向的。箭头的头部是结束顶点,箭头的尾部是开始顶点:

    image 2023 11 08 15 52 50 403

    在上图中,我们可以看到 A 有一条指向 B 的有向边,这意味着 A、B 是一条边,反之则不是(B、A)。因此,这是一个单向边或有向边的例子。

  • 无向边:无向边是两个顶点之间没有任何方向的连接。这意味着该边满足双向关系。下图是一个无向图的示例,其中 AB 的连接方式使得两条边 (A, B)(B, A) 相同:

    image 2023 11 08 15 54 17 040
  • 加权边:当一条边携带附加信息(例如成本、距离或其他信息)时,我们将该边称为加权边。 这用于许多图算法。 在下图中,边 (A, B) 的权重为 5。根据图的定义,这可以是距离、成本或任何内容:

    image 2023 11 08 15 55 27 677

邻近的

如果两个顶点之间有一条边,它们就是相邻的。如果两个顶点 AB 之间有一条直接边,那么这两个顶点就是相邻的。在下图中,我们可以看到顶点 1 和顶点 2 通过边 e1 相连,因此它们被称为相邻。由于顶点 2 在顶点 3 和顶点 4 之间没有边,因此顶点 2 与顶点 3 和顶点 4 不相邻。

事件

如果一条边的顶点是该边的端点之一,那么这条边就是该顶点的入射边。此外,如果两条边共享一个顶点,那么这两条边也是入射的。如果我们看下图,我们可以看到入射边 (e1,e2)、(e2,e3) 和 (e1,e3) 共享顶点 1。此外,还有共用顶点 4 的入射边 (e3,e4) 和共用顶点 3 的入射边 (e2,e4)。同样,我们可以说顶点 1 在边 e1、e2 和 e3 上有附点,顶点 2 在边 e1 上有附点,顶点 3 在边 e2 和 e4 上有附点,顶点 4 在边 e3 和 e4 上有附点:

image 2023 11 08 15 57 56 847

入度和出度

进入某个顶点的有向边的总数称为该顶点的内度,而从某个顶点出去的有向边的总数称为该顶点的外度。如果我们考虑下图中的有向边,我们可以说顶点 A 的 indegree 为 0,outdegree 为 1;顶点 B 的 indegree 为 2,outdegree 为 1;顶点 C 的 indegree 为 1,outdegree 为 1;顶点 D 的 indegree 为 1,outdegree 为 1;顶点 E 的 indegree 为 1,outdegree 为 2;最后,顶点 F 的 indegree 为 1,outdegree 为 0。

路径

路径是由顶点和边组成的序列,它从一个起点顶点开始,以我们试图到达的另一个顶点为终点。在下图中,从 AF 的路径由 (A,B)(B,C)(C,E)(E,F) 表示:

image 2023 11 08 15 59 37 088