何为图?
一种描述多对多关系的一种数据结构。更正式的定义是将图描述成有限非空顶点集+有限边集。从这个定义来看,自然是不存在空图的。
与线性表及树的区别:
- 链表(一对一),元素至多有且仅有一个前驱和一个后继;
- 树(一对多),元素至多有且仅有一个父节点和任意个子节点。其实树可以看作一种特殊的图结构。也就是说图可以简化成类似树形的结构(如果是连通图,可简化成一棵生成树;非连通图,可简化成若干生成树组成的生成森林。但是本质上图还是图。)
分类
- 有无方向:
- 无向图
- 有向图(对应顶点的关系可用入度+出度描述)
- 依据关系数目划分:
- 完全图(每个顶点都具有n-1条边,共n*(n-1)/2条边。若为有向图的话,即有去也有回,即n*(n-1)条弧)
- 稀疏图(边或弧相对较少)
- 稠密图(边或弧相对较多)
- 依据连通性划分:
-
连通图(对于无向图,任意两个顶点都存在路径)
-
强连通图(对于有向图,任意两个顶点都存在路径可以相互访问)
对于无向图来