1.1图的概念
1.【定义】图:二元组(V(G),E(G))
2.【定义】度: d(v)=d+(v)+d-(v)
d+(v):正度 以v为始点的边数
d-(v):负度 以v为终点的边数
3.【定义】简单图:无自环 无重边 无向图
4.【定义】完全图:任何两点间都有边的简单图(每个点的度数都为n-1)
5.【性质】(无向图)各点度数之和为边数2倍
d(v)=2m
6.【性质】(无向图)G中度为奇数的节点必为偶数个
证明思路:(反证法)若度为奇数的节点数为奇数个,则G中各点度数之和为奇数,与5矛盾。
7.【性质】(有向图)G中正度之和等于负度之和
8.【性质】(无向图)完全图边数为n(n-1)/2
9.【性质】(简单图)非空简单图中一定存在度相同的节点
证明思路:(鸽笼原理)case 1:若不存在孤立节点,一共n个节点,每个节点度的取值范围是1~(n-1);case 2:若存在K个孤立节点,其余n-K个节点,每个节点度取值为1~(n-K-1)
10.【定义】赋权图 正权图
11.【定义】子图:取出一部分点和一部分边 V'V,E'
E
支撑子图/生成子图:取出全部点和部分变V'=V
导出子图:取出部分点,但E'包含了G在V'之间的所有边
平凡子图:G本身和空图
12.【定义】图的交:点集和边集都取∩
图的并:点集和边集都取∪
图的对称差:点集取∪,边集取对称差
13.【定义】+(v):v的直接后继集或外邻集
-(v):v的直接前驱集或內邻集
14.【定义】图的同构:G1=(V1,E1),G2=(V2,E2),G1和G2同构<=>V1和V2之间存在双射f,(u,v)E1当且仅当(f(u),f(v))
G2,记作G1≌G2
【判定】同构的必要条件:
(1)点数和边数均相等
(2)G1 G2节点度的非增序列相同
(3)存在同构的导出子图(常用于判断两个图不同构)
1.2图的代数表示
1.邻接矩阵/权矩阵(无向图)(可以表示自环 不能表示重边)
2.关联矩阵(有向图)每列表示一条边,始点为1,终点为-1,(可以表示重边 不能表示自环)
3.边列表
对关联矩阵的边进行压缩,竖着看,仍然是每列表示一条边。A(k)存放第k条边的始点,B(k)存放第K条边的终点
4.正向表
注此处的数组下标从1开始,而非从0开始
有向图:对邻接矩阵的行进行压缩,将所有节点的直接后继依次存放在一起(依次指的是先存放1号节点的后继,在存放2号节点的后继,以此类推,直到n号节点的后继),构成数组B[m],但是只凭借B[m]我们只知道每条边的后继,不知道前驱,因此再构建数组A[n],A[i]表示节点i的第一个直接后继在B[m]中出现的位置。比如A={1,2,5,5,8},B={2,2,3,4,3,1,1},A[2]=2,A[3]=5,因此B[2],B[3],B[4]都是2号节点的后继,代表的边依次为(2,2)(2,3)(2,4)。此外,还可以添加叔祖Z[m],表示每条边的权重。
无向图:无向图的正向表需要将B的长度由m扩充为2m,原因如下:若1,2节点之间存在一条边,那么第一次需要添加(1,2),第二次需要添加(2,1),故每条边需要添加两次。
5.逆向表
思路与正向表相同,只不过B[m]中存放的是每条边的直接前驱。比如A=[1,3,5,7,8],B=[4,4,1,2,2,4,2],A[2]=3,A[3]=5,那么夹在B[3]和B[5]之间(左闭右开)的就是2号点的直接前驱,边为(1,2)(2,2)
6.邻接表(过于常见不再赘述)
(本文为期末复习,内容选自教材《图论与代数结构》戴一奇等编著,结合了作者本人的一些理解,若有错误,请指出!)