几种常见的图的分类:
类型 | 边 | 允许多重边 | 允许环 |
简单图 | 无向 | 否 | 否 |
多重图 | 无向 | 是 | 否 |
伪图 | 无向 | 是 | 是 |
有向图 | 有向 | 否 | 是 |
有向多重图 | 有向 | 是 | 是 |
完全图:n个顶点上的完全图是在每对不同顶点之间都恰有一条边的简单图。
二分图:若把简单图G的顶点集合分为两个不相交的非空集合V1和V2,使得图里的每一条边都连接着V1里的一个顶点和V2里的一个顶点(因此G里面没有边是连接着V1里的两个顶点或V2里的两个顶点),则G称为二分图(从定义中可以看出,二分图必无环,但可以有多重边)。
用标号法可以方便地判断一个图是否是二分图:
首先给任意一个顶点标上A,与标记A的顶点邻接的顶点标上B,再将标记为B的顶点邻接的顶点标记上A,续行此法,如果这个过程可以完成,使得没有相邻的顶点标上相同的字母,则该图是二分图,否则它就不是二分图。
另:如果标记成功,可以将两个顶点子集X与Y中的顶点分开画,与原图形形成一个同构图,这样可以直接地看出它是一个二分图。
完全二分图:设G是一个二分图,若G是一个简单图,并且X中的每个顶点与Y中的每个顶点均邻接,则称G为完全二分图。
易知,完全二分图中共有|X|·|Y|条边。
图的表示和图的同构:
常见的图的表示方式:边表、相邻矩阵(简单图的相邻矩阵是对称的0-1矩阵,当出现环或多重边时,矩阵对称但不是0-1矩阵,此时第(i, j)项是与{vi, vj}关联的边数。另外,有向图的相邻矩阵不必是对称的)、关联矩阵(顶点与边的n*m矩阵,用相等项的列来表示多重边,恰有一项等于1的列来表示环)。
同构:当两个简单图同构时,两个图的顶点之间具有保持相邻关系的一一对应(注意:同构的图是等价的图,只是画的方式不同而已)。
容易看出,两图同构的必要条件有:顶点数相等、边数相等、度数相同的顶点数相等(总的顶点度更得相等)。遗憾的是,目前尚没有用来判定简单图是否同构的不变量集。
连通性:
通路:在无向图里从顶点u到v的路径。
回路:若一条通路在相同的顶点上开始和结束,则它是一条回路。
简单通路(回路):若一条通路(或回路)不重复地包含相同的边,则它是简单的。
无向图连通性:若无向图里每一对不同的顶点之间都有通路,则该图称为连通的。
有向图连通性:根据是否考虑边的方向:有向图里由两种连通性概念。
强连通:每当a和b都是一个有向图里的顶点时,就有从a到b和从b到a的通路。
弱连通:在有向图的底图(底图:有向图忽略边的方向后得出的无向图)里,任何两个顶点之间都有通路。
显然,任何强连通的有向图也是弱连通的。
连通分支:不连通的图是两个或两个以上连通子图之并,每一对子图都没有公共顶点,这些不相交的连通子图称为图的连通分支。
由连通性引发的几个概念:
割点:如果删除一个顶点和它所关联的边,该图的连通分支增加,这样的顶点就叫做割点。
割边:把一旦删除就产生比原图更多的连通分支的子图的边称为割边(或桥)。
欧拉通路与哈密顿通路:
欧拉通路(或回路):包含着图G的每一条边的简单通路(或回路)。
定理:连通多重图具有欧拉回路当且仅当它的每个顶点都有偶数度。
定理:连通多重图具有欧拉通路而无欧拉回路,当且仅当它恰有两个奇数度顶点。
上述两个定理的证明见这里。
哈密顿通路与哈密顿回路:包含图的每一个顶点恰好一次的简单通路和回路(相对而言:欧拉通路和欧拉回路包含多重图每一条边恰好一次)。