微信登录

图 - 图的定义 - 图的基本概念与表示方法

图 - 图的定义 - 图的基本概念与表示方法

一、引言

在现实世界中,许多问题都可以抽象为图的形式来进行研究和解决。比如,社交网络中人与人之间的关系、交通网络中城市之间的连接、电路中元件之间的连接等。图作为一种重要的数据结构,在计算机科学、数学、物理学等多个领域都有着广泛的应用。本文将详细介绍图的基本概念和常见的表示方法。

二、图的基本概念

(一)图的定义

图(Graph)是由顶点(Vertex)集合和边(Edge)集合组成的一种数据结构,通常用 $G=(V, E)$ 来表示,其中 $V$ 是顶点的有限非空集合,$E$ 是边的集合,边表示顶点之间的关系。

(二)有向图和无向图

  • 无向图(Undirected Graph):如果图中的边没有方向,即边 $(u, v)$ 和边 $(v, u)$ 表示同一条边,那么这个图就是无向图。例如,在一个社交网络中,如果两个人是朋友关系,那么这种关系就是无向的,因为 A 是 B 的朋友,那么 B 也是 A 的朋友。
  • 有向图(Directed Graph):如果图中的边有方向,即边 $(u, v)$ 表示从顶点 $u$ 到顶点 $v$ 的一条有向边,与边 $(v, u)$ 不同,那么这个图就是有向图。比如在一个网页链接网络中,网页 A 链接到网页 B,这就是一个有向的关系。

(三)加权图和无权图

  • 无权图(Unweighted Graph):图中的边没有权重,仅仅表示顶点之间的连接关系。例如,在一个简单的城市交通网络中,只考虑城市之间是否有道路相连,而不考虑道路的长度、通行时间等因素,这就是一个无权图。
  • 加权图(Weighted Graph):图中的边带有权重,权重可以表示各种实际意义,如距离、时间、成本等。比如在一个城市交通网络中,每条道路都有其长度,这个长度就可以作为边的权重。

(四)顶点的度、入度和出度

  • 度(Degree):在无向图中,一个顶点的度是指与该顶点相连的边的数量。例如,在一个社交网络中,一个人的度就表示他的朋友数量。
  • 入度(In - degree):在有向图中,一个顶点的入度是指指向该顶点的边的数量。
  • 出度(Out - degree):在有向图中,一个顶点的出度是指从该顶点出发的边的数量。

(五)路径、连通图和连通分量

  • 路径(Path):图中一系列连续的边构成的顶点序列。例如,在一个城市交通网络中,从城市 A 经过城市 B 到达城市 C 的路线就是一条路径。
  • 连通图(Connected Graph):在无向图中,如果任意两个顶点之间都存在路径,那么这个图就是连通图。
  • 连通分量(Connected Component):无向图中的极大连通子图。例如,一个由多个互不相连的子图组成的图,每个子图就是一个连通分量。

三、图的表示方法

(一)邻接矩阵(Adjacency Matrix)

  • 表示方法:对于一个具有 $n$ 个顶点的图 $G=(V, E)$,其邻接矩阵是一个 $n\times n$ 的二维数组 $A$。如果图是无权图,当顶点 $i$ 和顶点 $j$ 之间有边相连时,$A[i][j]=1$,否则 $A[i][j]=0$;如果图是加权图,当顶点 $i$ 和顶点 $j$ 之间有边相连时,$A[i][j]$ 存储边的权重,否则 $A[i][j]$ 可以用一个特殊值(如无穷大)来表示。
  • 优点:实现简单,查询两个顶点之间是否有边的时间复杂度为 $O(1)$。
  • 缺点:空间复杂度为 $O(n^2)$,对于稀疏图(边的数量远小于顶点数量的平方)会浪费大量的空间。

(二)邻接表(Adjacency List)

  • 表示方法:对于图中的每个顶点,使用一个链表来存储与该顶点相邻的所有顶点。如果图是加权图,链表中的每个节点还需要存储边的权重。
  • 优点:空间复杂度为 $O(V + E)$,对于稀疏图来说,比邻接矩阵更节省空间。
  • 缺点:查询两个顶点之间是否有边的时间复杂度为 $O(\text{deg}(v))$,其中 $\text{deg}(v)$ 是顶点 $v$ 的度。

(三)两种表示方法的比较

表示方法 空间复杂度 查询边的时间复杂度 适用场景
邻接矩阵 $O(n^2)$ $O(1)$ 稠密图(边的数量接近顶点数量的平方)
邻接表 $O(V + E)$ $O(\text{deg}(v))$ 稀疏图

四、总结

图是一种非常重要的数据结构,它可以用来表示各种复杂的关系。通过对图的基本概念的理解,我们可以更好地描述和分析现实世界中的问题。而图的表示方法则为我们在计算机中存储和处理图提供了有效的手段。在实际应用中,我们需要根据图的特点(如稀疏性)来选择合适的表示方法,以达到空间和时间效率的平衡。

总之,掌握图的基本概念和表示方法是进一步学习图算法(如最短路径算法、最小生成树算法等)的基础,对于解决实际问题具有重要的意义。

图 - 图的定义 - 图的基本概念与表示方法