void CreatG() /*建立图的邻接矩阵G[][]*/ {int i,j. printf("Input the number of the node:"). scanf("%d",&.n). printf("\n"). for (i=0.i for (j=0.j G[i][j]=0. do { scanf("%d %d",&.i,&.j). G[i][j]=1. }while ((i!=-1)&.&.(j!=-1)). }
void TopSort() /*拓扑排序,输出拓扑序列*/ { int i,j. int degree[100]. /*按照无前驱顶点优先思想,degree[]存放个节点的入度.*/ Boolean visited[100],flag=True. printf("The Topolgical Order as follow:"). for (i=0.i { degree[i]=0. visited[i]=False. } printf("\n"). while(flag==True) { for (i=0.i for (j=0.j degree[i]=G[j][i] degree[i]. i=0. while ((i if (i {printf(" %d",i). visited[i]=True. for(j=0.j {G[i][j]=0. degree[j]=0.} } else flag=False. } }