拓扑排序
1 void toposort(int map[MAX][MAX],int indegree[MAX],int n) 2 { 3 int i,j,k; 4 for(i=0;i<n;i++) //遍历n次 5 { 6 for(j=0;j<n;j++) //找出入度为0的节点 7 { 8 if(indegree[j]==0) 9 { 10 indegree[j]--; 11 cout<<j<<endl; 12 for(k=0;k<n;k++) //删除与该节点关联的边 13 { 14 if(map[j][k]==1) 15 { 16 indegree[k]--; 17 } 18 } 19 break; 20 } 21 } 22 } 23 }