首页 > 代码库 > 邻接表 数组实现

邻接表 数组实现

#include<stdio.h>int main(){    int n,m,i;    int u[6],v[6],w[6];    int first[5],next[6];    //first记录每个点连接的第一边,e.g:first[u[i]]表示点u[i]能到达的第一个点    //next[i]表示编号为i的边的下一条边的编号    scanf("%d %d",&n,&m);    for(i=1;i<=n;i++)        first[i]=-1;//表示现在还没有边    for(i=1;i<=m;i++){//i表示变得编号        scanf("%d %d %d",&u[i],&v[i],&w[i]);        next[i]=first[u[i]];//倒序记录的,先输入的为next        first[u[i]]=i;//后输入的为first    }    printf("\n\n\n");    for(i=1;i<=n;i++){        int k=first[i];        while(k!=-1){            printf("%d %d %d\n",u[k],v[k],w[k]);            k=next[k];        }    }    return 0;}

 

邻接表 数组实现