数据结构中所说的图有两点限制:
- 不考虑顶点到自身的边,也即是若
<vi,vj> 或(vi,vj) 是图G 的边,则要求vi≠vj ; - 同一对顶点之间没有重复出现的边(也即两点之间,要么没有边,要么仅有一条边),若
<vi,vj> 或(vi,vj) 是图G 的边,那么它就是这两个顶点之间唯一的边;
当然,去掉这两个限制也将得到另一类稍微不同的数学对象。
1. 概念
完全图:任意两个顶点(两个不同的顶点)之间都有边的图(有向图或无向图);
n 个顶点的无向完全图有(n2) 条边;n 个顶点的有向完全图有n⋅(n−1) 条边;
连通(连通的实际含义就是两地之间存在路径)图:
- 连通无向图:如果无向图
G 中任意两个顶点vi 和vj 之间都连通; - 强连通有向图:如果对有向图
G 任意两个顶点vi 和vj 都互相连通。
有根图:如果在有向图
- 有根图的根可能不唯一;
子图与连通子图:一个图可能不是连通图(或强连通图),但它的一些子图则是可能连通的(或强连通的),这种子图称为原图的连通子图(对于有向图,称为强连通子图)
图与网络:如果图
带权的连通无向图被称为网络;
2. 性质
顶点数、边数和顶点度数的关系
e=12∑iD(vi) 对于有向图,
D(vi) 表示顶点vi 的出度+入度;结论是显然地,可用简单的数学归纳法;也可通过想象,两个点才对应一个边(无向图),边的个数是度数的一半;
最小连通无向图的边数与顶点的关系
包含 n 个顶点的最小连通无向图 G 恰有 n-1 条边;
2 ⇒ 1,3 ⇒ 2
n ⇒ n-1
使用数学归纳法即可证明:新增加一个结点, 只需引入一个到其他任何节点的边;
最小有根图的边数与顶点的关系,
包含
n 个顶点的最小有根图(即去掉任何一条边将不再有根图)恰好包含 n-1 条边,
同理,使用数学归纳法;根据 2 ⇒ 1,3 ⇒ 2,提出假设,n ⇒ n-1
引入一个新的顶点,找到之前的根,⇒ 得证;
3. 图与树的关系
所谓的树,就是从唯一的根节点出发,能到达任何其他结点;
- 最小连通无向图(
n 个顶点 ⇒n−1 条边):无向树
当然因为连通图是彼此互通的,无向树中的任何一个顶点都可以看做树的根,因此是无向的; - 最小有根图(
n 个顶点 ⇒n−1 条边):有向树,有根图的根可以看做树根,树中因此存在树根到其他每一个顶点的路径;