算法导论之图算法--图的表示方法

图的表示有两种方式:

1、图的邻接表

2、图的邻接矩阵

两种方法都可以表示有向图和无向图。

算法导论之图算法--图的表示方法

左图是一个图,中间图是左图的一个邻接表表示,右图是左图的的邻接矩阵表示。这里用1和0表示两个顶点之间是否是连接的。

下面是一个有向图的两种表示方法:

算法导论之图算法--图的表示方法


可以看出来:无向图的邻接矩阵是对称的,对此种图的表示可以用一个上三角矩阵形式表示,减少一半的存储空间。对邻接矩阵和邻接表稍作修改,把u和v之间的边权重存储在u和v对应的邻接矩阵或邻接表中,就表示一个权重图。

一 邻接表:

邻接表占用空间少,但是表达的节点之间的关系不明确。一半用来表示稀疏图

二 邻接矩阵:

直观的表达顶点之间的关系,但是占用空间大,一般需要n*n的规模,其中n为顶点个数。一般用于规模比较大的图表示,或者是系数稠密图的表示。