zoukankan      html  css  js  c++  java
  • 拓扑排序模板(邻接表+队列)

    blog.csdn.net/u012860063/article/details/38017661(拓扑排序模板题解可见)

    http://blog.csdn.net/acdreamers/article/details/16902023(链式向前星)

     1 struct Edge
     2 {
     3     int u;
     4     int v;
     5     int next;
     6 };
     7 Edge edge[MAXN];
     8 void addedge(int u,int v)
     9 {
    10     edge[num].u=u;
    11     edge[num].v=v;
    12     edge[num].next=head[u];
    13     head[u]=num++;
    14 }
    15 int toposort()///拓扑,可做模板
    16 {
    17     queue<int>q;
    18     for(int i=1; i<=n; i++)
    19     {
    20 
    21         if(in[i]==0)//入度为0的进队列
    22             q.push(i);
    23     }
    24     int k=0;
    25     while(!q.empty())
    26     {
    27         int u=q.front();
    28         q.pop();
    29         topo[k++]=u;
    30         for(int i=head[u]; i!=-1; i=edge[i].next)
    31         {
    32             int v=edge[i].v;
    33             in[v]--;
    34             if(in[v]==0)
    35                 q.push(v);
    36         }
    37     }
    38     if(k<n)return 0;///存在有向环或者图不连通,总之不能进行拓扑排序
    39     return 1;///可以进行拓扑排序,有多种情况,topo数组是其中一种序列
    40 }

    弱渣一枚,欢迎大家指正错误~~

  • 相关阅读:
    LeetCode-389-找不同
    xml配置与使用
    curl使用
    php中JPGraph入门配置与应用
    php开发通用采集程序
    adodb配置与使用
    swfupload上传
    ZendFramework使用中常见问题
    memcache配置与使用
    第四章 供给与需求的市场力量
  • 原文地址:https://www.cnblogs.com/ZP-Better/p/4669588.html
Copyright © 2011-2022 走看看