图可以用邻接表存储,
邻接表为n个链表,
链表可以用数组模拟(比vector速度快)。
const int N;
int h[N],e[N],ne[N],idx;//分别表示,h[i]:图中编号i的头结点,e[i]:节点i的值(编号),ne[i]节点i在链表中的下一个节点的idx。
void add(int a,int b)
{
e[idx]=b;
ne[idx]=h[a];
h[a]=idx++;
}
(不同链表的节点可以有相同的值,表示节点的编号,找当前点的下一个邻接点用ne[idx],找邻接点的邻接点用h[e[idx]])