在数学上,一个图(Graph)是表示物件与物件之间的关系的方法,是图论的基本研究对象。一个图看起来是由一些小圆点(称为顶点或结点)和连结这些圆点的直线或曲线(称为边)组成的。
目录
[隐藏]
§定义[编辑]
图又有各种变体,包括简单图/多重图;有向图/无向图等,但大体上有以下两种定义方式。
§二元组的定义[编辑]
图是一个二元组,其中称为顶点集,称为边集。它们亦可写成和。 的元素是一个二元组数对,用表示,其中。
§三元组的定义[编辑]
一个图,是指一个三元组,其中称为顶集(Vertices set),称为边集(Edges set),与不相交;称为关联函数,将中的每一个元素映射到。如果那么称边连接顶点,而则称作的端点,此时关于相邻。同时,若两条边有一个公共顶点,则称关于相邻。
§分类[编辑]
§有/无 向图[编辑]
如果给图的每条边规定一个方向,那么得到的图称为有向图,其边也称为有向边。在有向图中,与一个节点相关联的边有出边和入边之分,而与一个有向边关联的两个点也有始点和终点之分。相反,边没有方向的图称为无向图。
§简单图[编辑]
一个图如果
- 没有两条边,它们所关联的两个点都相同(在有向图中,没有两条边的起点终点都分别相同);
- 每条边所关联的是两个不同的顶点
- 则称为简单图(Simple graph)。简单的有向图和无向图都可以使用以上的“二元组的定义”,但形如 的序对不能属于E。而无向图的边集必须是对称的,即如果 ,那么 。
§多重图[编辑]
若允许两结点间的边数多于一条,又允许顶点通过同一条边和自己关联,则为多重图的概念。它只能用“三元组的定义”。
§基本术语[编辑]
- 阶(Order):图中顶集的大小称作图的阶。
- 子图(Sub-Graph):图称作图的子图如果以及。
- 生成子图(Spanning Sub-Graph):指满足条件的的子图。
- 度(Degree)是一个顶点的度是指与该顶点相关联的总边数,顶点的度记作。度和边有如下关系:。
- 出度(Out-degree)和入度(In-degree):对有向图而言,顶点的度还可分为出度和入度。一个顶点的出度为,是指有条边以该顶点为起点,或说与该点关联的出边共有条。入度的概念也类似。
- 邻接矩阵
- 自环(Loop):若一条边的两个顶点相同,则此边称作自环。
- 路径(Path):从顶点u到顶点v的一条路径是指一个序列,的起点终点为及;称作路径的长度;,称为路径的起点;,称为路径的终点。如果,称该路径是闭的,反之则称为开的;如果两两不等,则称之为简单路径(Simple path,注意,是允许的)。
- 行迹(Trace):如果路径中边各不相同,则该路径称为到的一条行迹。
- 轨道(Track):即简单路径。
- 闭的行迹称作回路(Circuit),闭的轨道称作圈(Cycle)。
(现存文献中的命名法并无统一标准。比如在另一种定义中,walk对应上述的path,path对应上述的track,trail对应上述的trace。)
- 距离(Distance): 从顶点u出发到顶点v的最短路径若存在,则此路径的长度称作从u到v的距离。若从u到v根本不存在路径,则记该距离为无穷(∞)。
- 距离矩阵
- 桥(Bridge):若去掉一条边,便会使得整个图不连通,该边称为桥。
§图的存储表示[编辑]
一个不带权图中若两点不相邻,邻接矩阵相应位置为0,对带权图(网),相应位置为∞。一个图的邻接矩阵表示是唯一的,但其邻接表表示不唯一。在邻接表中,对图中每个顶点建立一个单链表(并按建立的次序编号),第i个单链表中的结点表示依附于顶点vi的边(对于有向图是以顶点vi为尾的弧)。每个结点由两个域组成:邻接点域(Adjvex),用以指示与vi邻接的点在图中的位置,链域(Nextarc)用以指向依附于顶点vi的下一条边所对应的结点。如果用邻接表存放网(带权图)的信息,则还需要在结点中增加一个存放权值的域(Info)。每个顶点的单链表中结点的个数即为该顶点的出度(与该顶点连接的边的总数)。无论是存储图或网,都需要在每个单链表前设一表头结点,这些表头结点的第一个域data用于存放结点vi的编号i,第二个域firstarc用于指向链表中第一个结点。
图的重要类型[编辑]
- 补图:与G拥有相同的点的完全图删除原图G的边所得到的图成为G的补图
- 树状图
- 平面图
- 连通图
- 有向无环图
- 完全图:每一对不同顶点间都有边相连的的图,记作。
- 二分图:顶集,且每一条边都有一个顶点在中,而另一个顶点在中。
- 完全二分图:二分图中若任意两个和中的顶点都有边相连。若,则图记作。
- 正则图:如果图中所有顶点的度皆相等,则此图称为正则图
- 欧拉图:存在经过所有边一次(可以多次经过点)的路径的图
- 哈密顿图:存在经过所有点一次的路径的图