静态邻接表

#include <stdio.h>
#include
<string.h>
#include
<stdlib.h>

struct node
{
int y, v, next;
}T[
1000];

int size;

int adj[1000];

void add_edge(int i, int j, int v)
{
T[size].v
= v;
T[size].y
= j;
T[size].next
= adj[i];
adj[i]
= size++;
}

int main( )
{
int N, M, i, j, a, b, c;
while (scanf("%d%d", &N, &M) != EOF)
{
size
= 0;
for (i = 0; i < 1000; i++)
adj[i]
= -1;
for(i = 1; i <= M; i++) {
scanf(
"%d%d%d",&a, &b, &c);
add_edge(a, b, c);
}
for(i = 1; i <= N; i++ ) {
printf(
"%d: ",i);
for( j = adj[i]; j != -1 ; j = T[j].next)
printf(
"%d (%d) ",T[j].y,T[j].v);
puts(
"");
}

}
return 0;
}

posted on 2011-08-05 17:18  more think, more gains  阅读(190)  评论(0编辑  收藏  举报

导航