1.邻接矩阵

  • 二维数组,如果有重边就按题意考虑是否可以合并成一条边,或者只取一条边

2.邻接表

  • 链表结构,头插法

3.vector

  • 开一个vector数组来简化邻接表,但有时不够块

4.链式前向星

  • 开一个结构体存边信息,开一个数组存每一条边,开一个head记录连接着这个点的下一个点是谁,head初值赋值成-1
typedef struct{
    int t,val,nxt;
}E;
E edge[N];
int head[N];
int cnt;

void insert(int x,int y,int l){
    edge[++cnt].t=y;
    edge[cnt].val=l;
    edge[cnt].nxt=head[x];
    head[x]=cnt;
}