邻接表,存储方法跟树的孩子链表示法相类似,是一种顺序分配和链式分配相结合的储存结构。如这个表头结点所对应的顶点存在相邻顶点,则把相邻顶点依次存放于表头结点所指向的单向链表中。
与邻接矩阵相比,邻接表适合存点多边少的图,在时间和空间上会有一些优化。
此处借用一下金哥的图,嗯。
邻接表的建立:
void addedge(int u,int v,int w)//u为起点,v为终点,w为边权{ cnt++; e[cnt].v=v; e[cnt].w=w; e[cnt].next=head[u]; head[u]=cnt;}
调边:
for(int i=head[u];i!=0;i=e[i].next){ int k=e[i].v;}
最后,完结撒花。