【数据结构】图的基础定义

图是一种非常重要的数据结构,特别是应用在地图上,比如高德地图路径规划、坐地铁、公交时的路径规划,我们的生活与之息息相关。下面回顾一波基础定义

一、图的定义

图(Graph):是由顶点的有穷非空集合和顶点之间边的集合组成。

顶点(Vertex):图中的数据元素。

边(Edge):顶点之间的逻辑关系,表示为(ⅵ,vj)。

弧(Arc):即有向边,表示为

备注:图通常表示为G(V,E),其中,G 表示一个图,V 是图 G 中顶点的集合,E 是图 G 中边的集合。

二、有向图与无向图的定义

无向边:若顶点 ⅵ 到 vj之间的边没有方向,则称这条边为无向边(Edge),用无
序偶对(ⅵ,vj)来表示。

无向图 (Undirected graphs):图中任意两个顶点之间的边都是无向边。

无向完全图:在无向图中,任意两个顶点之间都存在边。

【数据结构】图的基础定义_第1张图片

有向边:若从顶点 vi 到 νj的边有方向,则称这条边为有向边,也称为弧(Arc)。
用有序偶来表示,ⅵ称为弧尾(Tail),vj称为弧头(Head)。

有向图 (Directed graphs):图中任意两个顶点之间的边都是有向边。

有向完全图:在有向图中,任意两个顶点之间都存在方向互为相反的两条弧。

【数据结构】图的基础定义_第2张图片

三、权的定义

有些图的边或弧具有与它相关的数字,这种与图的边或弧相关的数叫做权

【数据结构】图的基础定义_第3张图片

四、连通图的定义

在无向图G中,如果从顶点v到顶点v’有路径,则称ⅴ和v’是连通的。如果对于图中任意两个顶点 vi、vj∈E, vi和vj都是连通的,则称G是连通图(ConnectedGraph)。

【数据结构】图的基础定义_第4张图片

五、度的定义

无向图顶点的边数叫度,有向图顶点的边数叫出度和入度

【数据结构】图的基础定义_第5张图片

六、图的存储方式

6.1、邻接矩阵存储

图的邻接矩阵(Adjacency Matrix) 存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧的信息。

  1. 无向图的邻接矩阵。

无向图的边数组是一个对称矩阵

【数据结构】图的基础定义_第6张图片
  1. 有向图的邻接矩阵。
【数据结构】图的基础定义_第7张图片
  1. 带权邻接矩阵。
【数据结构】图的基础定义_第8张图片

6.2、邻接表存储

邻接表:散列链表存储方式,也就是数组+链表的形式。

  1. 无向图的邻接表

其中数组表示定点Vertex,链表表示边Edge。

【数据结构】图的基础定义_第9张图片
  1. 有向图的邻接表

其中数组表示顶点Vertex,链表存储出度关系的边,即弧Arc,如图

【数据结构】图的基础定义_第10张图片

除此之外,还有逆邻接表,如图弧,链表存储入度关系的边

【数据结构】图的基础定义_第11张图片
  1. 带权值邻接表

在邻接表的基础上,链表多了一个权重字段。

【数据结构】图的基础定义_第12张图片

你可能感兴趣的:(#,数据结构,图搜索)