关于拓扑排序,判断有向图是否存在环
就没有去构建图了,只写了个思路~多的不谈,直接上代码~
#include<bits/stdc++.h>
using namespace std ;
const int Max_Size = 100 ;
vector<int > v[Max_Size];
int indegree[Max_Size];
queue<int>q ;
int n , e ;
void count(){//获取各节点的入度
memset(indegree, 0, sizeof(indegree));
for(int i = 0 ;i < n ;i++ ){
for(int j = 0 ; j< v[i].size(); j++ ){
int x = v[i][j] ;
indegree[x] ++ ;
}
}
}
int top_sort(){
int num = 0 ;
for(int i = 0 ;i< n ; i++ ){
if(indegree[i] == 0 ){
q.push(i);
}
}
while (!q.empty()){
int w = q.front();
cout << w << " ";
num ++ ;
q.pop() ;
for(int i = 0 ;i< v[w].size();i++ ){
int x = v[w][i];
indegree[x] -- ;
if(indegree[x] == 0 ){
q.push(x);
}
}
}
if(num <n){
return 0 ;
}
return 1 ;
}
int main(){
return 0 ;
}