因为任意两个顶点之间都可能存在联系,因此无法用数据元素在内存中的物理位置来表示元素之间的关系。
对于无向图,图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧。
如图,假设该二维数组为A,则A[v0][v1]的值为1代表顶点v0跟v1之间有边,A[v1][v3]的值为0则代表v1与v3之间没有边。可以看出无向图的邻接矩阵都为对称矩阵。
由这个矩阵我们可以看出某个顶点的度为在邻接矩阵vi在第i行或者第i列的元素之和。
如果为有向图
邻接矩阵会是这样子的
很明显,有向图的邻接矩阵并不是对称矩阵,假设邻接矩阵为A,A[v0][v1]为0,即v0到v1没有弧。
顶点v1的出度为2,对应的是v1行的元素之和,顶点v1的入度为1,对应的是v1列的元素之和
对于网来说则是
图中邻接矩阵中的∞代表一个计算机允许的,大于所有边上权值的值。