main() { int i,src,dst,nd[20],ttr=0;; clrscr(); freopen("topo.in","r",stdin); scanf("%d%d",&n,&e); for(i=0;i<=n;i++) { d[i]=f[i]=NIL; nd[i]=i; } EdgeInit(n); for(i=1;i<=e;i++) { scanf("%d%d",&src,&dst); InsertEdge(src,dst,NIL,i); } t=0; for(i=1;i<=n;i++) { if(d[i]==0) {ttr+=1;printf("\nTree-%d :: ",ttr);Topo(i);} } /* qsort((void *) (nd+1),n,sizeof(nd[0]),SortFunction); for(i=1;i<=n;i++) { printf("%d\n",*(nd+i)); }*/ fclose(stdin); printf("\nTotal tree=%d",ttr); printf("\nOK"); }
void Initialization(int n) { int i; EdgeInit(n); HeapInit(n); for(i=1;i<=n;i++) { Key[i]=INF; Parant[i]=NIL; } }
void read(void) { int i,src,dst,nd[20],ttr=0;; clrscr(); freopen("topo.in","r",stdin); scanf("%d%d",&n,&e); for(i=0;i<=n;i++) { discover[i]=finish[i]=NIL; nd[i]=i; } EdgeInit(n); for(i=1;i<=e;i++) { scanf("%d%d",&src,&dst); InsertEdge(src,dst,NIL,i); } }
calcir() { int a,b; for(a=1;a<=n;a++) for(b=1;b<=n;b++) } main() { int i,src,dst,nd[20]; clrscr(); freopen("dfs.in","r",stdin); scanf("%d%d",&n,&e); for(i=0;i<=n;i++) { d[i]=f[i]=NIL; nd[i]=i; } EdgeInit(n); for(i=1;i<=2*e;i+=2) { scanf("%d%d",&src,&dst); InsertEdge(src,dst,NIL,i); InsertEdge(dst,src,NIL,i+1); } t=0; for(i=1;i<=n;i++) { if(d[i]==0) Topo(i);calcir(); } qsort((void *) (nd+1),n,sizeof(nd[0]),SortFunction); for(i=1;i<=n;i++) { printf("%d\n",*(nd+i)); } fclose(stdin); printf("\nOK"); }