返回
图的概念及其表示,你了解多少?
后端
2023-12-24 07:09:26
图的概念及其表示
图的概念在数学和计算机科学中都有着广泛的应用,它是一种抽象的数据结构,用于对象之间的关系。
1. 图的定义及相关术语
- 图 (Graph):由顶点(Vertex)的有限集合和边(Edge)的有限集合组成的数据结构,顶点用V表示,边用E表示,图用G表示,G = (V, E)。
- 顶点 (Vertex):图中的基本单位,通常用字母表示,如A、B、C等。
- 边 (Edge):连接两个顶点的线段,用顶点的名称或字母表示,如AB表示顶点A和顶点B之间的边。
- 度 (Degree):顶点与之相连的边的数量,记为deg(v)。
- 路径 (Path):顶点序列,其中相邻的两个顶点之间都有边连接,路径的长度为路径上边的数量。
- 连通 (Connectivity):如果图中任意两个顶点之间都有路径连接,则称该图为连通图,否则称为非连通图。
- 权重 (Weight):边上标注的数值,表示边的重要程度或长度。
- 有向图 (Directed Graph):边具有方向的图,边的箭头表示边连接两个顶点的方向。
- 无向图 (Undirected Graph):边不具有方向的图,边的两端没有明确的起点和终点。
- 循环图 (Cyclic Graph):存在至少一个环路(路径从某个顶点出发经过一些顶点后又回到该顶点)的图。
2. 图的存储表示
图的存储表示方式有多种,常用的有:
- 邻接矩阵 (Adjacency Matrix):二维数组,其中矩阵中的每个元素表示两个顶点之间边的权重,如果两个顶点之间没有边,则相应的元素值为0。
- 邻接表 (Adjacency List):数组,其中每个元素是一个顶点,每个顶点对应一个链表,链表中的节点表示与该顶点相连的边。
- 十字链表 (Incidence List):数组,其中每个元素是一个边,每个边对应两个链表,链表中的节点分别表示边的起点和终点。
3. 图的分类
图可以根据不同的标准进行分类,常用的分类有:
- 无向图和有向图 :根据边是否有方向,可以将图分为无向图和有向图。
- 稀疏图和稠密图 :根据图中边的数量,可以将图分为稀疏图和稠密图。稀疏图的边数远少于顶点数的平方,稠密图的边数接近或等于顶点数的平方。
- 连通图和非连通图 :根据图中任意两个顶点之间是否有路径连接,可以将图分为连通图和非连通图。
- 简单图和多重图 :根据边是否可以重复,可以将图分为简单图和多重图。简单图中边不会重复,多重图中边可以重复。
- 平面图和非平面图 :根据图能否在平面上绘制而不产生交叉,可以将图分为平面图和非平面图。
4. 无向图的表示
无向图可以用邻接矩阵或邻接表来表示。
- 邻接矩阵表示 :无向图的邻接矩阵是一个对称矩阵,矩阵中的每个元素表示两个顶点之间边的权重,如果两个顶点之间没有边,则相应的元素值为0。
- 邻接表表示 :无向图的邻接表是一个数组,其中每个元素是一个顶点,每个顶点对应一个链表,链表中的节点表示与该顶点相连的边。
5. 有向图的表示
有向图可以用邻接矩阵或邻接表来表示。
- 邻接矩阵表示 :有向图的邻接矩阵不是对称矩阵,矩阵中的每个元素表示两个顶点之间边的权重,如果两个顶点之间没有边,则相应的元素值为0。
- 邻接表表示 :有向图的邻接表是一个数组,其中每个元素是一个顶点,每个顶点对应一个链表,链表中的节点表示从该顶点出发的边。
6. 稀疏图和稠密图
稀疏图的边数远少于顶点数的平方,稠密图的边数接近或等于顶点数的平方。
- 稀疏图的表示 :稀疏图可以用邻接表来表示,这样可以节省存储空间。
- 稠密图的表示 :稠密图可以用邻接矩阵来表示,这样可以方便地访问任意两个顶点之间的边。
7. 图的应用
图在现实生活中有着广泛的应用,例如:
- 社交网络:社交网络中的用户可以用顶点表示,用户之间的关系可以用边表示。
- 交通网络:交通网络中的城市可以用顶点表示,城市之间的道路可以用边表示。
- 电路网络:电路网络中的元件可以用顶点表示,元件之间的连线可以用边表示。
- 计算机网络:计算机网络中的计算机可以用顶点表示,计算机之间的连接可以用边表示。
8. 结论
图的概念及其表示在数学和计算机科学中都有着广泛的应用,它是一种抽象的数据结构,用于对象之间的关系。