静态邻接表

来源:互联网 发布:淘宝联盟用微信公众号 编辑:程序博客网 时间:2024/04/29 17:41
#include<stdio.h>#include<string.h>int pre[10010]; //记录第i个点最后指向哪个点;int n,m; //点和边数;struct node{int to;  //终点;int w;  //权值;int next;  //同为第i个点出发的下一个点在edge中的位置}edge[105];  void init(){int i,x,y,z;memset(pre,-1,sizeof(pre));  //初始化为-1,一但egde[j].next=-1表示为结束;i=1;while(m--){scanf("%d %d %d",&x,&y,&z);edge[i].to=y;edge[i].w=z;edge[i].next=pre[x];  //以x为起点的上一条边在egde中的位置;pre[x]=i++; //以x为起点的下一条边将会在edge中的位置;}}void print(){int i,j;for(i=1;i<=n;i++){printf("%d\n",i);for(j=pre[i];j!=-1;j=edge[j].next){printf("-->%d is %d\n",edge[j].to,edge[j].w);}}}int main(){scanf("%d %d",&n,&m);init();print();return 0;}

0 0
原创粉丝点击