邻接表模板

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int tot,nxt[100005],head[100005],u[100005],v[100005],w[100005];
 4 int n,m;
 5 int add_edge(int a,int b,int c)
 6 {
 7     tot++;
 8     v[tot]=b;
 9     w[tot]=c;
10     nxt[tot]=head[a];
11     head[a]=tot;
12 }//输入边
13 int main()
14 {
15     cin>>n>>m;
16     int a,b,c;
17     memset(head,-1,sizeof(head));//重置数组
18     for(int i=1;i<=m;i++)
19     {
20         cin>>a>>b>>c;
21         add_edge(a,b,c);
22     }
23     int now;
24     for(int i=1;i<=n;i++) 
25     {
26         now=head[i];
27         while(now!=-1)
28         {
29             cout<<i<<' '<<v[now]<<' '<<w[now]<<endl;
30             now=nxt[now];
31         }
32     }//遍历输出
33     return 0;
34 }
35 /*
36 4 5   
37 1 4 9   
38 4 3 8   
39 1 2 5   
40 2 4 6   
41 1 3 7 
42 */

 NOIp day2 rp++ :)

posted @ 2018-11-10 21:25  unsigned_XB  阅读(130)  评论(0编辑  收藏  举报