为了能在程序中对图进行处理,我们一般会用邻接表或邻接矩阵将图的顶点与边存储下来,根据问题的不同,使用不同的存储方式会相应的降低算法的复杂度。
邻接表
记顶点和边的集合分别用V和E来表示,|V| 和 |E| 分别表示顶点和边的个数。邻接矩阵用|V|*|V| 的二维数组来表示图,v[i][j]表示顶点i与顶点j的关系。
一、无向图
在无向图中,只需要知道两个顶点之间是否有边相连就可以确定顶点之间的关系,即若是顶点i指向顶点j,则就有顶点j指向顶点i,那么就可以将v[i][j]与v[j][i]设为1(“1”表示两顶点相连),否则就设为0。这样就表示了一个无向图。
i/j | 0 | 1 | 2 | 3 | 4 |
0 | 0 | 1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 | 1 | 0 |
2 | 0 | 1 |