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; }