3-数据结构-图

1152 字
6 分钟
3-数据结构-图

图的性质#

设图有 nn 个顶点、ee 条边(有向图中称为弧)。除非特别说明,本文只讨论简单图:无自环、无重边,且 n⩾1n \geqslant 1、e⩾0e \geqslant 0。

  • ee 主导:已知顶点数 nn,求边数 ee 的范围。
  • nn 主导:已知边数 ee,求顶点数 nn 的范围。
  • 表中的“有解”表示至少存在一张满足条件的图;nn 和 ee 均取整数。

为简化公式,记

U(e)=⌈1+1+8e2⌉,D(e)=⌈1+1+4e2⌉.U(e)=\left\lceil\frac{1+\sqrt{1+8e}}{2}\right\rceil,\qquad D(e)=\left\lceil\frac{1+\sqrt{1+4e}}{2}\right\rceil.

U(e)U(e) 是满足 e⩽(n2)e \leqslant \binom n2 的最小 nn,D(e)D(e) 是满足 e⩽n(n−1)e \leqslant n(n-1) 的最小 nn。

无向图#

无向简单图的一对顶点之间至多有一条边,因此最多有 (n2)\binom n2 条边。

情况ee 主导(已知 nn)nn 主导(已知 ee)
任意无向图有解0⩽e⩽n(n−1)20 \leqslant e \leqslant \dfrac{n(n-1)}2U(e)⩽nU(e) \leqslant n
非连通图有解n⩾2n \geqslant 2,0⩽e⩽(n−1)(n−2)20 \leqslant e \leqslant \dfrac{(n-1)(n-2)}2⌈3+1+8e2⌉⩽n\left\lceil\dfrac{3+\sqrt{1+8e}}2\right\rceil \leqslant n
连通图有解n−1⩽e⩽n(n−1)2n-1 \leqslant e \leqslant \dfrac{n(n-1)}2U(e)⩽n⩽e+1U(e) \leqslant n \leqslant e+1

边界的构造方法如下:

  • 非连通图的边数最大时,由一个孤立顶点和一个 n−1n-1 阶完全图 Kn−1K_{n-1} 组成。
  • 连通图至少含有一棵生成树,因此 e⩾n−1e \geqslant n-1。
  • nn 主导时,如果不要求连通,可以不断加入孤立顶点,所以 nn 没有上界。

无向图中的环#

无环的无向图称为森林,连通的森林称为树。

情况ee 主导(已知 nn)nn 主导(已知 ee)
森林有解0⩽e⩽n−10 \leqslant e \leqslant n-1e+1⩽ne+1 \leqslant n
树有解e=n−1e=n-1n=e+1n=e+1
含环图有解n⩾3n \geqslant 3,3⩽e⩽n(n−1)23 \leqslant e \leqslant \dfrac{n(n-1)}2e⩾3e \geqslant 3,U(e)⩽nU(e) \leqslant n
连通且含环图有解n⩾3n \geqslant 3,n⩽e⩽n(n−1)2n \leqslant e \leqslant \dfrac{n(n-1)}2e⩾3e \geqslant 3,U(e)⩽n⩽eU(e) \leqslant n \leqslant e

若森林有 cc 个连通分量,则

e=n−c.e=n-c.

因此,无向图满足 e⩾ne \geqslant n 时一定含环;反过来不成立,因为“一个三角形加若干孤立顶点”在 e<ne<n 时也可以含环。

“含环图”表示图中至少有一个环;“环图” CnC_n 特指所有顶点度数均为 22 的连通图,此时 n⩾3n \geqslant 3 且 e=ne=n。

有向图#

有向简单图中,一对不同顶点 u,vu,v 之间可以同时存在 u→vu\to v 和 v→uv\to u,所以最多有 n(n−1)n(n-1) 条弧。

有向图的“连通”需要区分:

  • 弱连通:忽略所有弧的方向后,得到的无向图连通。
  • 强连通:任意两个顶点 u,vu,v 之间都同时存在从 uu 到 vv 和从 vv 到 uu 的有向路径。
情况ee 主导(已知 nn)nn 主导(已知 ee)
任意有向图有解0⩽e⩽n(n−1)0 \leqslant e \leqslant n(n-1)D(e)⩽nD(e) \leqslant n
非弱连通图有解n⩾2n \geqslant 2,0⩽e⩽(n−1)(n−2)0 \leqslant e \leqslant (n-1)(n-2)⌈3+1+4e2⌉⩽n\left\lceil\dfrac{3+\sqrt{1+4e}}2\right\rceil \leqslant n
弱连通图有解n−1⩽e⩽n(n−1)n-1 \leqslant e \leqslant n(n-1)D(e)⩽n⩽e+1D(e) \leqslant n \leqslant e+1
非强连通图有解n⩾2n \geqslant 2,0⩽e⩽(n−1)20 \leqslant e \leqslant (n-1)^2max⁡ ⁣{2,⌈1+e⌉}⩽n\max\!\left\{2,\left\lceil1+\sqrt e\right\rceil\right\} \leqslant n
强连通图有解n=1,e=0n=1,e=0;或 n⩾2n \geqslant 2,n⩽e⩽n(n−1)n \leqslant e \leqslant n(n-1)e=0e=0 时 n=1n=1;e=1e=1 时无解;e⩾2e \geqslant 2 时 D(e)⩽n⩽eD(e) \leqslant n \leqslant e

其中:

  • 弱连通有向图至少需要 n−1n-1 条弧;给一棵无向生成树的每条边指定方向即可达到下界。
  • n⩾2n \geqslant 2 时,强连通有向图至少需要 nn 条弧;一个经过全部顶点的有向环可以达到下界。
  • 非强连通图最多有 (n−1)2(n-1)^2 条弧。达到上界的一种方法是:取一个顶点 vv,其余 n−1n-1 个顶点构成完全有向图,并只保留 vv 与其余顶点之间同一方向的弧。

有向图中的环#

不含有向环的有向图称为有向无环图(Directed Acyclic Graph,DAG)。

情况ee 主导(已知 nn)nn 主导(已知 ee)
DAG 有解0⩽e⩽n(n−1)20 \leqslant e \leqslant \dfrac{n(n-1)}2U(e)⩽nU(e) \leqslant n
弱连通 DAG 有解n−1⩽e⩽n(n−1)2n-1 \leqslant e \leqslant \dfrac{n(n-1)}2U(e)⩽n⩽e+1U(e) \leqslant n \leqslant e+1
非弱连通 DAG 有解n⩾2n \geqslant 2,0⩽e⩽(n−1)(n−2)20 \leqslant e \leqslant \dfrac{(n-1)(n-2)}2⌈3+1+8e2⌉⩽n\left\lceil\dfrac{3+\sqrt{1+8e}}2\right\rceil \leqslant n
含有向环图有解n⩾2n \geqslant 2,2⩽e⩽n(n−1)2 \leqslant e \leqslant n(n-1)e⩾2e \geqslant 2,D(e)⩽nD(e) \leqslant n

DAG 一定存在拓扑序。按照拓扑序,弧只能从前面的顶点指向后面的顶点,因此每对顶点之间至多选一个方向,最多有 (n2)\binom n2 条弧。把所有靠前的顶点都指向靠后的顶点即可达到上界。

这里把 u→v→uu\to v\to u 视为长度为 22 的有向环,因此含有向环图最少可以只有 22 条弧。

需要注意:DAG 只要求不存在有向环。忽略方向后,它对应的无向图仍然可能含环。例如 1→21\to2、1→31\to3、2→32\to3 是 DAG,但忽略方向后得到一个三角形。

常用判定结论#

  • 无向图中,e>(n−1)(n−2)2e>\dfrac{(n-1)(n-2)}2 时一定连通。
  • 无向图中,e⩾ne\geqslant n 时一定含环;e=n−1e=n-1 只有在图连通时才能判定它是一棵树。
  • 有向图中,e>(n−1)(n−2)e>(n-1)(n-2) 时一定弱连通。
  • 有向图中,e>(n−1)2e>(n-1)^2 时一定强连通。
  • 有向图中,e>n(n−1)2e>\dfrac{n(n-1)}2 时一定含有向环。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

3-数据结构-图
https://skaco2.com/posts/09-research/3-数据结构-图/
作者
SKACO2
发布于
2026-08-30
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
SKACO2
笼中鸟,何时飞!
公告
欢迎来到我的博客!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
63
分类
10
标签
59
总字数
84,017
运行时长
0 天
最后活动
0 天前

目录