# y #define max 100 #define maxint 0 typedef struct arc{ int adj; struct arc * next; int info; }arc; typedef struct vnode{ int data; arc *first; }vnode,adj[max]; typedef struct{ adj vertices; int dingdian,bian; }alg; int getvex(alg g,int n){ for(int i=0;i> g.dingdian >> g.bian; for(int i=0;i> g.vertices[i].data; g.vertices[i].first=NULL; } int v1=0,v2=0,i,j; for(int k=0;k> v1 >> v2; i=getvex(g,v1);j=getvex(g,v2); arc*p1=new arc; arc*p2=new arc; p1->adj=j; p1->next=g.vertices[i].first;g.vertices[i].first=p1; p2->adj=i; p2->next=g.vertices[j].first;g.vertices[j].first=p2; } return; } void dfsal(alg g,int v){ int visited[max]; for(int i=0;iadj; if(visited[w]) dfsal(g,w); p=p->next; } } typedef struct{ int vexs[max]; int arcs [max][max]; int dingdian1,bian1; }amg; int getvex1(amg g,int n){ for(int i=0;i> g.dingdian1 >> g.bian1; for(int i=0;i> g.vexs[i]; } for(int i=0;i> v1 >> v2; i=getvex1(g,v1);j=getvex1(g,v2); g.arcs[i][j]=1; g.arcs[j][i]=g.arcs[i][j]; } return; } void dfsam(amg g,int v){ int visited[max]; for(int i=0;i