数据结构学习日志之十七--图的存储结构(邻接矩阵)

因为任意两个顶点之间都可能存在联系,因此无法用数据元素在内存中的物理位置来表示元素之间的关系。

对于无向图,图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧。



如图,假设该二维数组为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列的元素之和

对于网来说则是


图中邻接矩阵中的∞代表一个计算机允许的,大于所有边上权值的值。

猜你喜欢

转载自blog.csdn.net/chanbendong/article/details/80334935