拓扑排序(深度优先) C 代码


拓扑排序(深度优先) C 代码


const long maxv=108;
long v,e,count,a[maxv],used[maxv];
bool g[maxv][maxv],ans;
void init()
{
    scanf("%ld%ld",&v,&e);


        g[i][j]=false;

    {
       long a,b;
       scanf("%ld%ld",&a,&b);
       g[a][b]=true;
    }
}
void dfs(long now)
{
    if(!ans) return;
    used[now]=-1;

      if(g[now][i])
      {
         if(used[i]==-1)
         {
            ans=false;
            return;
         }
         else if(!used[i])
           dfs(i);
      }
    a[count]=now;count--;
    used[now]=1;
}
void toposort()
{
    long begin;
    ans=false;

    {

         if(g[j][i])
           break;
       begin=i;
       ans=true;
       break;
    }
    //  Find a Vertex to Start
    if(ans)
    {

         used[i]=0;
       count=v;
       dfs(begin);
    }
    //  Topo_Sort
    if(ans)
    {
       bool first=true;

       {
          if(first) first=false;
          else putchar(' ');
          printf("%ld",a[i]);
       }
       putchar('\n');
    }
    else
      printf("No answer.\n");
    //  Write down the Answer
}
int main()
{
    //*
    freopen("data.in","r",stdin);
    freopen("data.out","w",stdout);
    //*/
    init();
    toposort();
return 0;
}

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《拓扑排序(深度优先) C 代码
本文地址:https://www.zhiletu.com/archives-7855.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微