bool topsort() {
int hh = 0, tt = -1;
for(int i = 1; i <= n; i++)
if(!d[i]) q[++tt] = i;
while(hh <= tt) {
int t = q[hh++];
for(int i = h[t]; i != -1; i = ne[i]) {
int j = e[i];
if(--d[j] == 0) q[++tt] = j;
}
}
return tt == n - 1;
}
原文:https://www.cnblogs.com/Hot-machine/p/13203623.html