#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;
}
静态邻接表
最新推荐文章于 2018-08-04 17:50:42 发布