图的数组(邻接矩阵)存储表示
数组
方法:将图的顶点信息存储在一个一维数组中,并将它的邻接矩阵存储在一个二位数组中即构成图的数组(邻接矩阵)表示。spa
无向图的邻接矩阵具备以下特色:.net
1,它是对称阵,(i,j)= (i,j)blog
2,第i行或者第i列上数值为1的元素个数,等于顶点i的度数。ci
3,整个矩阵中数值为1的元素个数,等于边数的2倍。get
有向图邻接矩阵具备以下特色:博客
1,通常状况下,它不是对称阵,(i ,j) != (i,j)it
2,第i行上数值为1的元素个数等于顶点i的出度;遍历
3,第i列上1元素的个数等于顶点i的入度。方法
4,整个矩阵中数值为1的元素的个数等于弧数。
若是边或者弧带权,能够在邻接矩阵中表现出来,将数值为1的元素,换成相应的权重便可。
邻接表
思路:顶点信息用连续空间存储,边(弧)即顶点之间的关系经过单链表表示。
有向图:
出度容易查找,入度须要遍历全部表。
无向图:
求顶点的度很是容易,只须要把对应的链表节点个数求出。
因而可知,求有向图的顶点入度是比较困难的,因此就有了逆邻接表
十字链表
十字链表是有向图的一种链式存储结构。
邻接多重表
邻接多重表是无向图的一种链式存储结构。
学PHP的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog