基本概念
图的定义:图是一个非空顶点集和边集构成的二元组(点集不能为空且图与其几何实现无关)G={V(G),E(G)}
相关联:是边的一个端点,则这条边和该端点相关联
相邻:有公共端点的两条边相邻,一条边的两个端点也相邻
环:起点和终点是同一个点的边
棱:起点和终点不是同一个点的边
重边:连接两个端点的不同边,边的条数被称为重数
简单图:不含环和重边的图
平凡图:只有一个顶点的图
邻居:相邻的两个点互为邻居(有边将这俩个点连起来)
邻域:相邻点的集合
独立集:是一个点的集合,该集合内所有点均无边相连
度:与顶点相关联的边数
偶点:度数是偶数的点
奇点:度数是奇数的店
孤立点:度数为0的点
悬挂点:度数为1的点
悬挂边:悬挂点的关联边
有向图的基础图:把有向边变成无向边(有向图的基础图是唯一的)
无向图的定向图:把无向边定方向(不唯一)
简单有向图:无环无重边的有向图(起点终点均相同的有向边叫做重边)
内邻居:通过入度边与其相邻的叫内邻居,相同的,通过出度边的叫做外邻居
完全图:任何两个点之间都有边
空图:只有点没有边
K-正则图:图中所有顶点的度数都为K
二部图(偶图)
- 定义:可以将所有顶点划分为两部分,同一部分的点之间都不相邻
- 完全二部图:同一部分的点之间都不相邻,但与另一部分的所有点都相邻,同理,可推出完全K部图
- 标号法判定二部图:使用红蓝两种颜色进行标号,任取一点标红,将相邻点标蓝,扫描其他未标颜色的点,直到所有顶点都已标号,如果有顶点在标号时被重复标为不同颜色,为非二部图
同构
- 定义:两个图的点集和边集刚好可以一一对应(存在一一映射),说这两个图同构
- 证明两个图同构=》找到所有对应关系
- 证明不同构=》找到邻接状况不一样的任意一组点
- 握手定理:任意一个图的度之和为偶数,等于边数的2倍
子图
- 子图:点和边都能在原图中找到
- 母图:原图
- 真子图:不等于母图的子图
- 生成子图:包含所有顶点的子图
- 基础简单图:从一个图中去掉所有重边及环后所得的剩余图称为基础简单图
- 点导出子图:顶点是原图顶点的子集且加入两端都在子集中的边构成的图
- 边导出子图:由原图边集的子集及其所有端点构成的图
运算
- G-V’:去掉与V’中的点以及与其有关的所有边后的图
- G-E’:去除E’中所有边的生成子图
- G/V’:=G-V’
- G/E’:去除E’中所有边,并且还要去除独立集,不一定与G-E’相等
- G+E’:加上新边集E’
- 图不相交:点集和边集均不相交(与“边不相交”和“点不相交”相区分)
- G1∩G2:取交集
- G1∪G2:取并集(若两个图不相交可记为G1+G2)
- 对称差G1△G2 :G1△G2 = (G1∪G2) - (G1∩G2) =(G1-G2)∪(G2-G1)
- 联图:在不相交的G1和G2的并图G1+G2中,把G1的每个顶点和G2的每个顶点连接起来所得到的图称为G1和G2的联图,记为G1∨G2
路
- 途径:是G中点边交替组成的序列,序列的第一个点叫做起点,最后一个点叫做终点,中间的点叫做内部顶点,途径的长指途径的边数,途径的节指途径的任意连续部分(一段)
- 逆途径(W-1):将原途径起点当终点,终点当起点,所有边逆向交错构成的序列叫做逆途径(有向途径类似)
- WW’:表示将途径W和途径W’相连接,W的终点是W’的起点
- 迹:边不重复的途径(点可重复)(有向迹)
- 路:边和点都不重复的途径,定理:途中两个顶点存在途径《=》那一定存在路
- 距离:两点之间最短路的长度
- 连通图:任意两点之间都有一条路相连
- 边割:一个子集和一个补集中共同存在的顶点
- 赋权图:给每一条附上权值得图
- 强连通:有向图每个顶点之间都是双向连通的
- 单向连通:有向图每个顶点之间都是单向连通的
- 弱连通:有向图的基础图是连通的 (注意:强连通一定单向连通,单向连通一定弱连通)
- 竞赛图:完全图的定向图(竞赛图都有一条哈密顿路)
- 哈密顿路径:无向图中经过所有的点且点不重复的环
- 有向哈密顿路:有向图经过所有点且不重复的环
- 圈:经过的顶点各不相同的闭迹
- 闭途径:起点等于终点且长度大于1的途径
- 闭迹:经过的边各不相同的闭途径
- K-圈:长为K的圈
- 奇圈:圈的路径长度为奇数
- 偶圈:圈的路径长度为偶数
- 二部图不包含奇圈
图的数据结构
- 关联矩阵表示法(有向图和无向图):出度边标1(或者权值),入度边标-1,对角线标0,点的入度为所在列1的个数,出度为所在行1的个数
- 邻接矩阵(有向图和无向图):有边相连标1(或者权值)否则标0,顶点度数等于每行(每列)1的个数,矩阵的次方就等于横坐标对应点到纵坐标对应点长度为次方数的路径的条数,对于无向图是对称矩阵
- 弧表表示法(有向图):所谓图的弧表, 也就是图的弧集合中的所有有序对, 弧表表示法直接列出所有弧的起点和终点
- 邻接表表示法(有向图):点存储于单向链表中,由每个顶点拉出一个单链表存储相关联的边信息
- 星形表示法:对弧编号,标记起点、终点和权值
注意:星形和邻接表比较常用,有重边时不能使用邻接矩阵