算法模板之拓扑排序

来源:互联网 发布:c websocket java 编辑:程序博客网 时间:2024/05/21 08:54

给定很多事件,做这些事件有先后顺序,输出合理的顺序。

判断有向图是否存在环。


int c[N],t,ans[N],n,m;vector<int>G[N];bool dfs(int u){    c[u]=-1;    for(int i=0;i<G[u].size();i++)    {        if(c[G[u][i]]<0)            return false;        if(!c[G[u][i]]&&!dfs(G[u][i]))            return false;    }    ans[t--]=u;    c[u]=1;//c数组记录拓扑序列。    return true;}bool toposort(){    t=n;    memset(c,0,sizeof(c));    for(int i=1; i<=n; i++)        if(!c[i])            if(!dfs(i))                return false;//有环,排序失败    return true;}


原创粉丝点击