标签:
1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 #define MAX 100010 /*点数*/ 5 int First[MAX]; /*First[x]:x表示头结点为x,First[x]表示下一条边的编号*/ 6 using namespace std; 7 struct edge 8 { 9 int TO; /*下一个顶点*/ 10 int Next; /*记录下一条边的编号*/ 11 int Vlaue; /*权值*/ 12 }ID[3*MAX]; /*边表,无向图的边数记得多弄些*/ 13 14 int SIGN;/*链表的边数,链表的边数=无向图边数*2=有向图边数*/ 15 16 void Add_E(int x,int y,int z) /*添加边*/ 17 { 18 ID[SIGN].TO=y; 19 ID[SIGN].Vlaue=z; 20 ID[SIGN].Next=First[x]; 21 First[x]=SIGN++; 22 } 23 24 void FIND(int x)/*查找与X相连的顶点*/ 25 { 26 for(i=First[x];i!=0;i=ID[i].Next) //查找与该点相关的点 27 { 28 /*每一个ID[i].TO都是与点x相连的顶点*/ 29 /*每一个ID[i].Vlaue是该边的权值*/ 30 /*...*/ 31 } 32 } 33 34 int main() 35 { 36 int N,M; 37 int x,y,z; 38 while(scanf("%d %d",&N,&M)!=EOF) 39 { 40 SIGN=1; 41 for(i=1;i<=N;i++)First[i]=0; 42 for(i=1;i<=M;i++) 43 { 44 scanf("%d %d %d",&x,&y,&z); 45 Add_E(x,y,z); 46 /*Add_E(y,x,z);如果是构建无向图的话*/ 47 } 48 } 49 return 0; 50 }
标签:
原文地址:http://www.cnblogs.com/LWF5201314614/p/4463156.html