图是由顶点集合和边集合组成的数据结构。
图有很多种分类方法:
1.按边有无方向分为有向图和无向图。
有向图:连接两个点的边没有方向,边表示为有序对 <u,v>。
无向图:连接两个点的边有方向,边表示为无序对 (u,v)。
2.按边有无权值分为带权图和无权图
带权图:图中的每条边都有一个与之相关的权值,权值可以表示各种实际意义的度量(距离,时间等)。
无权图:图中的边没有被赋予任何权值,仅表示顶点间的连接关系。
3.按边的性质和特点(我也不知道按什么分😂)分为简单图和复杂图
简单图:既没有自环(连接一个顶点自身的边),也没有重边(连接两个顶点之间的多条边)的图。
复杂图:允许存在重边的图。如果还允许存在自环,则称为广义图。
4.按边相对顶点的数量分为稀疏图和稠密图
稀疏图:边的数量相对顶点数量较少的图。一般来说,如果图中边的数量e远小于顶点数量n的平方,即e<<n^2,可以认为是稀疏图。
稠密图:边的数量相对顶点数量较多的图。通常当图中边的数量e接近顶点数量n的平方,可视为稠密图。
5.按照图中顶点之间的连接关系是否达到一种 “完全” 的状态分为无向完全图和有向完全图。
无向完全图:对于一个具有n个顶点的无向图,如果任意两个不同的顶点都存在一条无向边相连,那么这个无向图就是无向完全图。
有向完全图:对于一个具有n个顶点的有向图,若任意两个不同的顶点u和v之间,都存在从u到v和从v到u的两条有向边,则称这个有向图为有向完全图。
下面来讲一下一些关于图的相关术语
度
无向图中,顶点的度是与其相连的边数。
有向图中分为 (指向该顶点的边数)和 出度(从该顶点出发的边数)。
邻接顶点
若存在边 (u,v),则 u 和 v 互为邻接顶点。
路径
一系列顶点组成的序列,相邻顶点间有边连接。
简单路径:不重复经过顶点的路径。
环:起点和终点相同的路径。
连通性
连通图:无向图中任意两顶点间均有路径。
强连通图:有向图中任意两顶点间存在双向路径。
弱连通图:将有向边视为无向后是连通的。