图的存储与实现,使用邻接矩阵
Posted Coderon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图的存储与实现,使用邻接矩阵相关的知识,希望对你有一定的参考价值。
一、实现思想
图的邻接矩阵表示法,也叫数组表示法。用一个一维数组存储图中的顶点,用一个二维数组存储图中的边,即各个顶点直接的边的关系,这个二维数组就叫「邻接矩阵」。
不用代码的话,我们都比较熟悉,图的深度遍历和广度遍历。但是用代码怎么实现,这就要考虑存储一个图了,这个正是本博客的重点。
设图G=(V,E),有n个顶点,则邻接矩阵是一个 n X n的二维数组。V代表一个点集,E代表一个边集。
- 对于非网图(没有权值的有向、无向图)
= = 1 若(vi,vj) 属于 E
edge[i][j]
= = 0 否则
这条公式很精辟,因为概括地很好,既包括了有向图,也包括了无向图。其实本质上,我们在置1的时候,考虑的是连通性,如果某个点可以到另一个点,那么二维数组的某个位置就可以置1了。
- 对于网图(有权值的有向、无向图)
= w(ij) 若(vi,vj)属于 E。w(ij)代表某条边的权值
edge[i][j] = 0 若 i = j
= ∞ 否则
以上是关于图的存储与实现,使用邻接矩阵的主要内容,如果未能解决你的问题,请参考以下文章