数组模拟邻接表

 1 const int N=maxn;
 2  // maxn表示图中最大顶点数
 3 const int E=maxe ; // maxe图中最大边数
 4 struct Edge{
 5 int u,v; //边所邻接的两个顶点
 6 int w; //边的权值
 7 int next; //边指针,指向下一条边的内存地址
 8 }edge[E]; // 静态内存,用于分配边
 9 int head[N]; // 表头
10 int num; // 内存的指针
11 void init()
12 {
13 for(int i=0;i<E;i++) head[i]=-1; //这里为什么要设为-1
14 num= 0;
15 }
16 void addedge(int b,int e,int w)
17 {
18 edge[num].u=b;
19 edge[num].v=e;
20 edge[num].w=w;
21 edge[num].next=head[b];
22 head[b]=num++;
23 }
24 

 

posted @ 2017-04-08 18:26  ioioioioioio  阅读(174)  评论(0编辑  收藏  举报