邻接表

typedef struct  
{   
    int to;   
    int w;   
    int next;   
}Edge;   
Edge e[MAX];   
int pre[MAX];   
  
//初始化   
memset(pre,-1,sizeof(pre));   
  
//输入   
scanf("%d %d %d",&from,&to,&w1);   
e[i].to = to; e[i].w = w1; e[i].next = pre[from]; pre[from] = i;   
i++;  
  1. /*now为弧尾结点序号,i为now所发出的边序号,adj为弧头结点序号,w为now-->adj这条边的权值*/  
  2. for(i = pre[now]; i != -1; i = edge[i].next)   
  3. {   
  4.      int adj = edge[i].to;   
  5.      int w = edge[i].w;   
  6.      //do something...   
  7. }  

http://yzmduncan.iteye.com/blog/883903

原文地址:https://www.cnblogs.com/1114250779boke/p/2753447.html