图的存储结构之邻接矩阵
图是一种复杂的数据结构,表现在不仅各个顶点的度可以相差很多,而且顶点的逻辑关系也错综复杂。从图的定义可知,一个图包含两方面的信息:顶点的信息以及描述顶点之间关系的信息。
邻接矩阵:
也称为数组表示法,其方法是用一个一维数组存储顶点信息,用二维数组存储边的信息,这个二维数组称为邻接矩阵。
Arc[i][j]=1, if (vi,vj)属于E
Arc[i][j]=0, if (vi,vj)不属于E
若为网图
Arc[i][j]=wij, if (vi,vj)属于E
Arc[i][j]=0, if i=j
Arc[i][j]=∞, 否则
其中,wij表示权值,∞表示一个计算机允许的、大于所有边的权值的数
显然,无向图的邻接矩阵一定是对称矩阵,有向图的邻接矩阵则不一定对称
优点:在邻接矩阵中容易解决下列问题:
1. 对于无向图,顶点的度等于邻接矩阵第i行或第i列的非零元素的个数。对于有向图,顶点i的出度为第i行的非零元素的个数,入度为第i列非零元素的个数
2. 要判断i和j之间是否存在边,仅需要判断邻接矩阵中相应的元素Arc[i][j]</