首页 > 技术文章 > 图的表示

darklights 2016-03-22 22:26 原文

        对于图G=(V,E),可以用两种标准表示方法表示。一种表示法是将图作为邻接链表的组合,另一种是将图作为邻接矩阵来看待。

邻接链表

邻接链表表示由一个包含|V|条链表的数组Adj所构成,每个结点有一条链表。对于每个结点u,邻接链表Adj[u]包含所有与结点u之间有边相连的结点v。邻接链表在表示稀疏图上很有优势。邻接链表的一个潜在缺陷是无法快速判断一条边(u,v)是否是图中的一条边,唯一的方法是在邻接链表Adj[u]里面搜索结点v。邻接矩阵克服了这个缺陷,但付出的代价是更大的存储空间消耗。

邻接矩阵

对邻接矩阵表示来说,我们通常会将图G中的结点编为1、2、……、|V|,这种编号可以任意。在进行编号之后,图G的邻接矩阵表示一个|V|*|V|的矩阵A=(aij)予以表示,该矩阵满足下述条件:

aij=1 if (i,j)属于E;否则 aij=0.

关于图的两种表示的一个例子如下所示,其中(b)为链表,(c)为矩阵表示。

推荐阅读