目录
图是一种比树更为复杂的非线性数据结构。
图的基本概念
图是由数据元素的集合及数据元素间的关系集合组成的一种数据结构:
Graph=(V,E)
其中,V是数据元素的集合,一般被称为顶点,E是数据元素之间关系的集合,也叫边。如果图中的边是没有方向的,我们称为无向图,一般无向图中的边用圆括号表示,如(v, w)
,有向图中的边用尖括号括起来,如<v, w>
。
完全图:在有n个顶点的无向图中,若有n(n-1)/2条边,则称此图为完全无向图。在有n个顶点的有向图中,若有n(n-1)条边,则称此图为完全有向图。
权:在某些图的应用中,边上具有与它相关的系数,称为权。这些权可以表示从一个顶点到另一个顶点的距离,花费的代价,所需的时间,次数等。这种带权图也被称为网络。
邻接点:如果(v, w)
是无向图G中的一条边,则称v与w互为邻接顶点,且边(v, w)
称为依附于顶点v和w。如果<v, w>
是有向图中的一条弧,则称顶点v邻接到顶点w(也称v是w的前驱,w是v的后继)。
顶点的度:在无向图中,一个顶点v的度是依附于顶点v的边的条数,记作TD(v)。在有向图中,以顶点v为始点的有向边的条数称为顶点v的初度,记作OD(v);以顶点v为终点的有向边的条数称为顶点v的入度,记作ID(v),有向图的顶点的度等于出度和入度之和。
路径:在图G=(V, E)中,若从顶点vi出发,沿一些边或弧经过一些顶点vp1, vp2, …, vpk,到达顶点vj,则顶点序列(vi, vp1, vp2, …, vpk, vj)被称为从顶点vi到顶点vj的路径。
路径长度:对于不带权的图,路径长度是指此路径上边的数目。对于带权图,路径长度是指路径上各边的权之和。
连通图与连通分量:在无向图中,若从顶点vi到顶点vj有路径,则称顶点vi与顶点vj是连通的。如果无向图中任意两个顶点都是连通的,则称此无向图是连通图。非连通图的极大连通子图(包括所有连通的顶点和这些顶点依附的所有边)叫做连通分量。
强连通图与强连通分量:在有向图中,若对于顶点vi和顶点vj,存在一条从vi到顶点vj和vj到顶点vi