1 #include 2 #include 3 #include 4 using namespace std; 5 struct graph{ 6 char map[500][20]; 7 long data[500][500]; 8 long vexnum,arcnum; 9 };10 11 long d[500];//d[500]为度12 long mount=0,p[500];//p[500]存储排序后的信息;13 14 15 16 long find_number(char a[],graph &Mgraph) 17 { long long i;18 for(i=0;i >n;Mgraph.vexnum=n;55 printf("%15s","");cout<<"请输入图的边数";56 cin>>m;Mgraph.arcnum=m;57 mount=0; for(i=0;i<500;i++)58 strcpy(Mgraph.map[i],"");59 memset(Mgraph.data,0,sizeof(Mgraph.data));60 memset(d,0,sizeof(d));61 memset(p,0,sizeof(p)); 62 printf("%15s","");cout<<"请按提示输入相邻的顶点"< >a;66 printf("%15s","");cout<<"终点:";cin>>b;67 f1=find_number(a,Mgraph);f2=find_number(b,Mgraph);68 if(Mgraph.data[f1][f2]==0)//防止平行边 69 {Mgraph.data[f1][f2]=1;d[f2]+=1;}70 }71 return n;72 } 73 74 75 int main(int argc, char *argv[])76 { long n,i;77 graph Mgraph;78 n=input(Mgraph);79 int k=topsort(Mgraph);80 system("cls");81 if(!k) 82 {printf("%15s","");cout<<"impossible"<