引子
如果我给出一个图,图中有几个点,我现在给出点之间的连接关系,我们如何存储呢?
邻接矩阵
我们开一个数组a[N][N],a[i][j]表示i到j可以连接,连接的距离是多少。
优点:访问特别快,判断i到j是否可以连接。时间复杂度O(1)。我们在用floyd(多源最短路)时,也需要用到这种存储方式。
缺点:空间复杂度O(N*N)N是点的数量,当N在10000以上的时候,就不能使用领接矩阵。
解决方法:我们发现在数组中,很多地方是没有用到的。我们应该“物尽其用”~
领接表
我们不把点作为存储方式。而将边作为存储方式呢?我们用一个结构体存储边的信息。包括它的编号、起点、终点、权值。
struct qq{
int x,y,d;
}a[