拓扑排序
参考资料
例题
有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。给出每个人的后代的信息。输出一个序列,使得每个人的后辈都比那个人后列出。Code (1)
#include <bits/stdc++.h>using namespace std;const int N=105;vector<int> G[N];int in[N];int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin>>n; for(int i=1;i<=n;i++) { int t; while(cin>>t&&t!=0) { G[i].push_back(t); in[t]++; } } queue<int> q; for(int i=1;i<=n;i++) { if(in[i])continue; q.push(i); } while(!q.empty()) { int u=q.front(); q.pop(); cout<<u<<' '; for(auto v:G[u]) { if(--in[v])continue; q.push(v); } } return 0;}