通常我们对于图论的实现是用邻接矩阵实现的,虽然很方便,结果也很直观,但如果数据量比较大,耗费的资源就非常多了。所以我们会用邻接表来对图中的信息,虽然读取相关信息时比邻接矩阵复杂,但存储的容量小,只需要O(|V|+|E|)的内存空间。
如用c++实现的邻接表的存储:
#include <iostream>
#include <queue>
#include <cmath>
#include <cstdio>
#include <vector>
using namespace std;
const int maxn = 1000;
vector<int> G[maxn];
int main()
{
int V, E;
scanf("%d%d", &V, &E);
for(int i = 0; i < E; i++)
{
int s, t;
scanf("%d%d", &s, &t);
G[s].push_back(t);
}
return 0;
}