文章目录
- 1 图
- 1.1 定义
- 1.2 4种图模型
- 2 无向图
- 2.1 定义
- 2.2 术语
- 后记
1 图
1.1 定义
图是一种非线性的数据结构,表示多对多的关系。
图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V, E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。
在图中需要注意的是:
-
线性表和树可以看做特殊的图。
-
线性表中我们把数据元素叫元素,树中将数据元素叫结点,在图中数据元素,我们则称之为顶点(Vertex)。
-
线性表可以没有元素,称为空表;树中可以没有节点,称为空树;但是,在图中不允许没有顶点(有穷非空性)
-
线性表中的各元素是线性关系,树中的各元素是层次关系,而图中各顶点的关系是用边来表示(边集可以为空)。
1.2 4种图模型
- 无向图
- 有向图
- 加权图
- 加权有向图
2 无向图
2.1 定义
图是由一组顶点和一组能够将两个顶点相连的边组成。
图下图2.1-1所示:
顶点一般使用0至V-1来表示一张含有V个顶点的图中的各个顶点,使用数组索引作为结点很方便。我们使用v-w或者w-v表示连接v和w的边。
特殊的图:
- 自环:一条连接一个顶点和其自身的边
- 连接同一对顶点的两条及以上的边称为平行边
含有平行边的图称为多重图;没有平行边或自环的图称为简单图。
2.2 术语
-
相邻顶点:由同一条边连接的两个顶点,称为相邻顶点,并称这条边依附于这2个顶点。
-
度数:某个顶点的度数即为依附于这个顶点的边的总数。
-
子图:有一幅图所以边的一个子集(以及他们所依附的所有顶点)组成的图。
-
路径:由边顺序连接的一系列顶点。
- 简单路径:一条没有重复顶点的路径。
-
环:一条至少含有一条边且起点和终点相同的路径。
- 简单环:一条(除起点和终点必须相同外)不含有重复顶点和边的环。
- u-v-w-x-u记法表示从u到v到w在回到u到一条环。
-
路径长度或者环的长度:路径或者边所 包含的边数。
-
连通:当两个顶点之间存在一条连接双方的路径时,我们称一个顶点和另外一个顶点连通。
- u-v-w-x记法表示u到x的一条路径
-
连通图:如果从任意一顶点都存在一条路径到达另一个任意顶点,我们称这幅图是连通图。
- 一幅非连通图由若干连通的部分组成,它们都是其极大连通子图(分量)。
-
连通图的生成树:连通图的生成树是它的一幅子图,它含有图中的所有顶点且是一颗树。
- 树是一幅无环连通图。互不相连的树组成的集合称为森林。
-
图的生成树森林:图的所有连通子图上生成树的集合。
一棵树如下图所示:
生成树森林:
当且仅当一幅含有V个结点的图G满足下列5个条件之一时,它就是一棵树:
-
G有V-1条边且不含有环;
-
G有V-1条边且时连通的;
-
G是连通的,但删除任意一条边都会使它不在连通;
-
G是无环图,但添加任意一条边都会产生一条环;
-
G中任意一堆顶点之间仅存在一条简单路径。
-
图密度:图密度是指已连接的顶点对占所有可能连接顶点对的比例。
- 稀疏图:如果一幅图中不同边的数量在顶点总数V的一个小的常数倍以内,那么我们就称这幅图是稀疏的。
- 稠密图:否则就是稠密图。
-
二分图:二分图是一种能够将所有结点分为两部分的图,其中图的每条边所连接的两个顶点分别属于不同的部分。
后记
如果小伙伴什么问题或者指教,欢迎交流。
❓QQ:806797785
⭐️源代码仓库地址:https://gitee.com/gaogzhen/algorithm
参考链接:
[1][美]Robert Sedgewich,[美]Kevin Wayne著;谢路云译.算法:第4版[M].北京:人民邮电出版社,2012.10
[2]数据结构:图的基本概念