一、图的基础
1.图的引出
基础阶段:线性结构
进阶阶段:树形结构
图形结构
数据与数据的关系:
- 集合:所有的元素除了同属一个集合之外,没有其他的关系
- 线性:所以元素通过一根线串起来,元素与元素之间只有前后关系,也就是1对1的关系
- 树形:所有的元素都是一层一层的,每一层的节点可以关联下一层的若干个节点,也就是1对多的关系
- 图形:所有的元素之间可以任意关联,也就是多对多的关系
2.图的定义:
- 图graph是由两个集合组成的,分别是顶点集合vertex和边edge记为G=(V,E)

顶点集合V={A, B, C, D,C ,E}
边集合={(A,B),(A,C),(A,D),(B,C),(B,E),(C,D)}
注意:顶点集是不能为空的
可以存在空表,空树,但是图必须至少一个顶点(可以没有边)
3.图的分类
- 按照图的边是否存在方向来分:有向图/无向图

- 按照顶点之间是否连通来分:连通图/非连通图

- 按照边是否有权重来分:有权图/无权图

4.图的常用术语:
从头到尾说的都是简单图:简单图:不考虑重边和自环
注意:完全图不考虑重边和自环、
重边:重复的边
自环:自己指向自己的边
完全图:
图是可以只有顶点没有边 的,即使是有向图和无向图,边的个数都可以为0,图的边数最多时候,称之为完全图
有向完全图:

n个顶点的有向图,最多可以有n(n-1)个边
n个顶点的有向完全图的边数是n(n-1)
2.无向完全图

n个顶点的无向图,最多可以有n(n-1)/2个边
n个顶点的无向完全图的边数是n(n-1)/2
稀疏图/稠密图
如果一个图的边数特别多就是稠密图,反之就是稀疏图,稠密和稀疏限定没有明确的边界,但是在一些其他书上有限定:
例如:e:边数 n:顶点数
e<nlongn则认为是稀疏图

权和网
不管是无向图还是有向图,边都是可以带权值,这个权值在不同的场景下有不同的定义
例如:A->:88-则可以看做A->B花费88元,或者花费88分钟,或者距离88公里
有权图在很多教材里面也称之为网

领接

度

路径


回路:也是一条路径,出发顶点和目的顶点是同一个顶点
顶点不重复的路径叫做简单路径

子图
子图就是图的一部分



连通
连通图:
无向图中,一个顶点到另外一个顶点有路径,则这两个顶点连通,那如果任意两个顶点之间都连通,则称之为连通图

N个顶点的连通图至少需要N-1条边
N个顶点的连通图边数>=n-1
但是如果边数>=n-1,他不一定是连通图
非连通图:
把图中每一个单独连接在一起的子图称为连通分量
教材定义:连通分量==图的极大连通子图
连通分量,都是图的子图
连通分量,自身都是连通的
连通分量,这个"极大"指的是这个连通分量里面的顶点数量和边的数量已经达到饱和了,不能在添加了(换句话说:在额外添加一个新的顶点进来就不连通了)


极大连通图:说的是极大不是最大
最大有唯一的感觉,但是极大就没有
如果本身是一个连通图,如果要去找连通分量,则只有一个就是他自身
如果本身是一个非连通图,则可以根据不连通的切成多份,分成很多独立的个数,所以会存在多个连通分量
有向图的强连通图:

有向图中,任意两个顶点都互相有路径,则可以称之为强连通图
有向图的非强连通图:

有向图的非强连通图,也可以切开:
强连通分量==有向图中的极大连通子图
- 强连通分量,是原本的子图
- 强连通分量,本身是强连通分量
- 无法再扩展新的节点
生成树
生成树==连通图中包含所有顶点的极小连通子图
换句话说:用最少的边把所有的顶点连接起来

其生成树有:


生成树不唯一
极小:再少一条边就不连通了,反之再多一条边就形成环了

