【邻接表】数组模拟邻接表

来源:互联网 发布:mysql触发器语法 编辑:程序博客网 时间:2024/06/05 02:40

参考:点击打开链接

代码:

#include<bits/stdc++.h>const int N = 100005;int head[N],cnt;struct node{    int to,val;    int next;}edge[N+10];void add_edge(int from,int to,int val){    edge[++cnt].to=to;    edge[cnt].val=val;    edge[cnt].next=head[from];    head[from]=cnt;}int main(){    memset(head,0,sizeof(head));    int n,m;    scanf("%d%d",&n,&m);    cnt=0;    for(int i=1;i<=m;i++)    {        int u,v,w;        scanf("%d%d%d",&u,&v,&w);        add_edge(u,v,w);        add_edge(v,u,w);    }    for(int i=1;i<=n;i++)    {        printf("%d: ",i);        for(int j=head[i];j;j=edge[j].next)            printf("%d ",edge[j].to);        printf("\n");    }    return 0;}