首页 > 代码库 > 家谱树

家谱树

技术分享
 1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdio> 5 #include <queue> 6 #define maxn 10015 7  8 using namespace std; 9 10 int n,a,cnt,num,x;11 int du_chu[maxn],du_ru[maxn];12 int e[115][115];13 14 int main()15 {16     scanf("%d",&n);17     for(int i=1;i<=n;i++)18     {19         while((cin>>a)&&a!=0)20         {21             du_chu[i]++;22             du_ru[a]++;23             e[i][du_chu[i]]=a;24         }25     }26     queue<int>que;27     for(int i=1;i<=n;i++)28         if(du_ru[i]==0)29             que.push(i);30     while(!que.empty())31     {32         x=que.front();33         cout<<x<<" ";34         que.pop();35         for(int i=1;i<=du_chu[x];i++)36         {37             du_ru[e[x][i]]--;38             if(du_ru[e[x][i]]==0)39                 que.push(e[x][i]);40         }41             42     }43     return 0;44 }45 /*46 547 048 4 5 1 049 1 050 5 3 051 3 052 */
View Code

 

家谱树