图论基本概念
本页面概述了图论中的一些概念,这些概念并不全是在 OI 中常见的,对于 OIer 来说,只需掌握本页面中的基础部分即可,如果在学习中碰到了不懂的概念,可以再来查阅。
图论相关定义在不同教材中往往会有所不同,遇到的时候需根据上下文加以判断。
图
图 (graph) 是一个二元组 。其中 是非空集,称为 点集 (vertex set),对于 中的每个元素,我们称其为 顶点 (vertex) 或 节点 (node),简称 点; 为 各结点之间边的集合,称为 边集 (edge set)。
常用 表示图。

当 都是有限集合时,称 为 有限图。
当 或 是无限集合时,称 为 无限图。
图有多种,包括 无向图 (undirected graph),有向图 (directed graph),混合图 (mixed graph) 等。
若 为无向图,则 中的每个元素为一个无序二元组 ,称作 无向边 (undirected edge),简称 边 (edge),其中 。设 ,则 和 称为 的 端点 (endpoint)。
若 为有向图,则 中的每一个元素为一个有序二元组 ,有时也写作 ,称作 有向边 (directed edge) 或 弧 (arc),在不引起混淆的情况下也可以称作 边 (edge)。设 ,则此时 称为 的 起点 (tail), 称为 的 终点 (head),起点和终点也称为 的 端点 (endpoint)。并称 是 的直接前驱, 是 的直接后继。

为什么起点是 tail,终点是 head?
边通常用箭头表示,而箭头是从「尾」指向「头」的。
若 为混合图,则 中既有 有向边,又有 无向边。
若 的每条边 都被赋予一个数作为该边的 权,则称 为 赋权图。如果这些权都是正实数,就称 为 正权图。
图 的点数 也被称作图 的 阶 (order)。
形象地说,图是由若干点以及连接点与点的边构成的。
相邻
在无向图 中,若点 是边 的一个端点,则称 和 是 关联的 (incident) 或 相邻的 (adjacent)。对于两顶点 和 ,若存在边 ,则称 和 是 相邻的 (adjacent)。
一个顶点 的 邻域 (neighborhood) 是所有与之相邻的顶点所构成的集合,记作 。
一个点集 的邻域是所有与 中至少一个点相邻的点所构成的集合,记作 ,即:
简单图
自环 (loop):对 中的边 ,若 ,则 被称作一个自环。
重边 (multiple edge):若 中存在两个完全相同的元素(边),则它们被称作(一组)重边。
简单图 (simple graph):若一个图中没有自环和重边,它被称为简单图。具有至少两个顶点的简单无向图中一定存在度相同的结点。
如果一张图中有自环或重边,则称它为 多重图 (multigraph)。

在无向图中 和 算一组重边,而在有向图中, 和 不为重边。
在题目中,如果没有特殊说明,是可以存在自环和重边的,在做题时需特殊考虑。
度数
与一个顶点 关联的边的条数称作该顶点的 度 (degree),记作 。特别地,对于边 ,则每条这样的边要对 产生 的贡献。
对于无向简单图,有 。
握手定理(又称图论基本定理):对于任何无向图 ,有 。
推论:在任意图中,度数为奇数的点必然有偶数个。
若 ,则称 为 孤立点 (isolated vertex)。
若 ,则称 为 叶节点 (leaf vertex)/悬挂点 (pendant vertex)。
若 ,则称 为 偶点 (even vertex)。
若 ,则称 为 奇点 (odd vertex)。图中奇点的个数是偶数。
若 ,则称 为 支配点 (universal vertex)。
对一张图,所有节点的度数的最小值称为 的 最小度 (minimum degree),记作 ;最大值称为 最大度 (maximum degree),记作 。即:,。
在有向图 中,以一个顶点 为起点的边的条数称为该顶点的 出度 (out-degree),记作 。以一个顶点 为终点的边的条数称为该节点的 入度 (in-degree),记作 。显然 。
对于任何有向图 ,有:
若对一张无向图 ,每个顶点的度数都是一个固定的常数 ,则称 为 - 正则图 (-regular graph)。
如果给定一个序列 a,可以找到一个图 G,以其为度数列,则称 a 是 可图化 的。
如果给定一个序列 a,可以找到一个简单图 G,以其为度数列,则称 a 是 可简单图化 的。
路径
途径 (walk):途径是连接一连串顶点的边的序列,可以为有限或无限长度。形式化地说,一条有限途径 是一个边的序列 ,使得存在一个顶点序列 满足 ,其中 。这样的途径可以简写为 。通常来说,边的数量 被称作这条途径的 长度(如果边是带权的,长度通常指途径上的边权之和,题目中也可能另有定义)。
迹 (trail):对于一条途径 ,若 两两互不相同,则称 是一条迹。
路径 (path)(又称 简单路径 (simple path)):对于一条迹 ,若其连接的点的序列中点两两不同,则称 是一条路径。
回路 (circuit):对于一条迹 ,若 ,则称 是一条回路。
环/圈 (cycle)(又称 简单回路/简单环 (simple circuit)):对于一条回路 ,若 是点序列中唯一重复出现的点对,则称 是一个环。
关于路径的定义在不同地方可能有所不同,如,「路径」可能指本文中的「途径」,「环」可能指本文中的「回路」。如果在题目中看到类似的词汇,且没有「简单路径」/「非简单路径」(即本文中的「途径」)等特殊说明,最好询问一下具体指什么。
子图

对一张图 ,若存在另一张图 满足 且 ,则称 是 的 子图 (subgraph),记作 。
若对 ,满足 ,只要 ,均有 ,则称 是 的 导出子图/诱导子图 (induced subgraph)。
容易发现,一个图的导出子图仅由子图的点集决定,因此点集为 () 的导出子图称为 导出的子图,记作 。
若 满足 ,则称 为 的 生成子图/支撑子图 (spanning subgraph)。
显然, 是自身的子图,支撑子图,导出子图;无边图是 的支撑子图。原图 和无边图都是 的平凡子图。
如果一张无向图 的某个生成子图 为 - 正则图,则称 为 的一个 - 因子 (-factor)。
如果有向图 的导出子图 满足 ,有 ,则称 为 的一个 闭合子图 (closed subgraph)。
连通
无向图
对于一张无向图 ,对于 ,若存在一条途径使得 ,则称 和 是 连通的 (connected)。由定义,任意一个顶点和自身连通,任意一条边的两个端点连通。
若无向图 ,满足其中任意两个顶点均连通,则称 是 连通图 (connected graph), 的这一性质称作 连通性 (connectivity)。
若 是 的一个连通子图,且不存在 满足 且 为连通图,则 是 的一个 连通块/连通分量 (connected component)(极大连通子图)。
有向图
对于一张有向图 ,对于 ,若存在一条途径使得 ,则称 可达 。由定义,任意一个顶点可达自身,任意一条边的起点可达终点。(无向图中的连通也可以视作双向可达。)
若一张有向图的节点两两互相可达,则称这张图是 强连通的 (strongly connected)。
若一张有向图的边替换为无向边后可以得到一张连通图,则称原来这张有向图是 弱连通的 (weakly connected)。
与连通分量类似,也有 弱连通分量 (weakly connected component)(极大弱连通子图)和 强连通分量 (strongly connected component)(极大强连通子图)。
相关算法请参见强连通分量。
稀疏图/稠密图

若一张图的边数远小于其点数的平方,那么它是一张 稀疏图 (sparse graph)。
若一张图的边数接近其点数的平方,那么它是一张 稠密图 (dense graph)。
这两个概念并没有严格的定义,一般用于讨论时间复杂度为 的算法与 的算法的效率差异(在稠密图上这两种算法效率相当,而在稀疏图上 的算法效率明显更高)。
补图
对于无向简单图 ,它的 补图 (complement graph) 指的是这样的一张图:记作 ,满足 ,且对任意节点对 , 当且仅当 。
反图
对于有向图 ,它的 反图 (transpose graph) 指的是点集不变,每条边反向得到的图,即:若 的反图为 ,则 。