链表
#include<bits/stdc++.h>
using namespace std;
const int B=3e6;
//链表;
int head[B],cnt;//cnt 用于记录总路径条数; head:同一节点的上一条路径的编号
struct node{int v,nxt}e[B<<1];// nxt :遍历时的同一节点的下一条路径,所以叫next ,也可以理解为上一次的边
void modify(int u,int v)
{
e[++cnt]=(node){v,head[u]};//记录当前这条边,并存储上一次同一节点的编号
head[u]=cnt;//将这次边的编号去更新上一次的编号,为下一次记录做准备。
}
int main()
{
modify(u,v);//加边操作
for (int i=head[u];i;i=e[i].nxt)//遍历操作;
{
int v=e[i].v;
}
}
为防止不够形象,自己以后会忘记,所以加一张图片