标签:
4 3 1 2 2 3 4 3
1 2 4 3
#include <stdio.h> #include <stdlib.h> #include <string.h> int imap[501][501],indegree[501]; void topsort(int n) { int i,j,k; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(indegree[j]==0) { indegree[j]--; if(i==n) printf("%d\n",j); else printf("%d ",j); for(k=1;k<=n;k++) if(imap[j][k]==1) indegree[k]--; break; } } } } int main() { int m,n,a,b; while(scanf("%d %d",&n,&m)!=EOF) { memset(imap,0,sizeof(imap)); memset(indegree,0,sizeof(indegree)); while(m--) { scanf("%d %d",&a,&b); if(!imap[a][b]) { imap[a][b]=1; indegree[b]++; } } topsort(n); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/baidu_30541191/article/details/47679247