2行のコード、1時間理解しました!2つの配列は隣接テーブルを記録します!(劉汝佳白書)
906 ワード
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<queue>
#include<math.h>
#include<set>
#include<vector>
#define MAXN 15
#define INF 1000
int main()
{
int i,j,n,m,t,c;
int first[MAXN];
int u[MAXN],v[MAXN],w[MAXN],next[MAXN];
scanf("%d%d",&n,&m);
for(i=0;i<=n;i++) first[i]=-1;
for(i=0;i<m;i++)
{
scanf("%d%d",&u[i],&v[i]);//u ,v
next[i]=first[u[i]];//
first[u[i]]=i;// !
}
// 。
for(i=1;i<=n;i++)
{
if(first[i]==-1)
{
printf(" <%d> 。
",i);
continue;
}
printf(" <%d> :
",i);
for(j=first[i];j!=-1;j=next[j])
{
printf("<%d %d> ",i,v[j]);
}
printf("
");
}
return 0;
}