码迷,mamicode.com
首页 > 编程语言 > 详细

拓扑排序——一般应用于工程

时间:2018-02-07 21:19:50      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:max   排序   size   for   div   tor   push   const   应用   

/*
5 6
1 2
1 3
3 2
3 4
2 4
2 5
1 3 2 4 5
*/

#include <iostream>
#include <vector>

using namespace std;

const int MAXN = 1000 + 10;
int n, m;
vector<int> G[MAXN];
int du[MAXN];
int que[MAXN];

int main()
{
    // read
    cin>>n>>m;
    while(m--)
    {
        int a, b;
        cin>>a>>b;
        G[a].push_back(b);
        du[b]++;
    }
    int start=1,tail=0;
    for(int i=1;i<=n;i++)
        if(du[i]==0)
            que[++tail]=i;
    while(start<=tail)
    {
        int u=que[start++];
        for(int i=0;i<(int)G[u].size();i++)
        {
            int v=G[u][i];
            du[v]--;
            if(du[v]==0)que[++tail]=v;
        }
    }
    for(int i=1;i<=n;i++)
        cout<<que[i]<<" ";
    return 0;
}

 

拓扑排序——一般应用于工程

标签:max   排序   size   for   div   tor   push   const   应用   

原文地址:https://www.cnblogs.com/ZDHYXZ/p/8428259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!