指针表示法
struct ArcNode //定义边表结点
int adjvex; //邻接点域
ArcNode* next;
};
struct VertexNode //定义顶点表结点
{
int vertex;
ArcNode* firstedge;
};
vector表示法
vector<int> v[MAXN];
数组表示法
int head[MAXN]; //初始化为-1
int h = 0;
struct Edge
{
int to;
int next;
};
Edge e[MAXN<<1];
void add(int a, int b)
{
e[h].to = b;
e[h].next = head[a];
head[a] = h++;
}