赞
踩
图是一种非常重要的数据结构,特别是应用在地图上,比如高德地图路径规划、坐地铁、公交时的路径规划,我们的生活与之息息相关。下面回顾一波基础定义
图(Graph):是由顶点的有穷非空集合和顶点之间边的集合组成。
顶点(Vertex):图中的数据元素。
边(Edge):顶点之间的逻辑关系,表示为(ⅵ,vj)。
弧(Arc):即有向边,表示为<Vi,Vj>。
备注:图通常表示为G(V,E),其中,G 表示一个图,V 是图 G 中顶点的集合,E 是图 G 中边的集合。
无向边:若顶点 ⅵ 到 vj之间的边没有方向,则称这条边为无向边(Edge),用无
序偶对(ⅵ,vj)来表示。无向图 (Undirected graphs):图中任意两个顶点之间的边都是无向边。
无向完全图:在无向图中,任意两个顶点之间都存在边。
有向边:若从顶点 vi 到 νj的边有方向,则称这条边为有向边,也称为弧(Arc)。
用有序偶<Vi,Vj>来表示,ⅵ称为弧尾(Tail),vj称为弧头(Head)。有向图 (Directed graphs):图中任意两个顶点之间的边都是有向边。
有向完全图:在有向图中,任意两个顶点之间都存在方向互为相反的两条弧。
有些图的边或弧具有与它相关的数字,这种与图的边或弧相关的数叫做权
在无向图G中,如果从顶点v到顶点v’有路径,则称ⅴ和v’是连通的。如果对于图中任意两个顶点 vi、vj∈E, vi和vj都是连通的,则称G是连通图(ConnectedGraph)。
无向图顶点的边数叫度,有向图顶点的边数叫出度和入度
图的邻接矩阵(Adjacency Matrix) 存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧的信息。
无向图的边数组是一个对称矩阵
邻接表:散列链表存储方式,也就是数组+链表的形式。
其中数组表示定点Vertex,链表表示边Edge。
其中数组表示顶点Vertex,链表存储出度关系的边,即弧Arc,如图<V0,V3>。
除此之外,还有逆邻接表,如图弧<V1,V0><V2,V0>,链表存储入度关系的边
在邻接表的基础上,链表多了一个权重字段。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。