POJ_1094_Sorting It All Out(拓扑排序)

 

原题目链接

/*
在循环里面调用toposort是因为如果输入中已经出现环,立即输出。
*/

 1 /*
 2 在循环里面调用toposort是因为如果输入中已经出现环,立即输出。
 3 */
 4 # include <cstdio>
 5 # include <cstring>
 6 # include <iostream>
 7 using namespace std;
 8 # define MAX 500
 9 int n,m,top,mark; //top保存输出数据的个数,mark用于记录字母。
10 int G[MAX][MAX],v[MAX]; //G用于记录边的信息,有向图。
11 int q[MAX];         //用于保存拓扑排序的数据。
12 int indegree[MAX]; //保存点的度数。
13 int toposort()
14 {
15     int deg[MAX],k,cnt;
16     int flag=1;
17     top=0;
18     memcpy(deg,indegree,sizeof(deg));  // 复制一份,不能使用indegree。因为可能toposort要调用多次。
19     for(int i=0;i<n;i++)
20     {
21         cnt=0;  //记录最高的度数
22         for(k=0;k<n;k++)
23             if(de

 

posted on 2013-08-17 16:40  随风浪子的博客  阅读(117)  评论(0编辑  收藏  举报

导航