【拓扑排序】BFS 别犯傻

来源:互联网 发布:matlab中优化目标函数 编辑:程序博客网 时间:2024/04/30 07:32
#include <iostream>#include <queue>#include <vector> using namespace std;const int MAXV = 300;bool connection[MAXV][MAXV];int degree[MAXV];bool inQ[MAXV];vector<int> order;bool BFS(){queue<int> Q;for(int i=0;i<MAXV;++i) if(degree[i] == 0) inQ[i] = true, Q.push(i);while(!Q.empty()){int head = Q.front(); Q.pop(); order.push_back(head);for(int i=0;i<MAXV;++i){if(!inQ[i] && connection[head][i]) --degree[i];if(degree[i] == 0) inQ[i] = true, Q.push(i);}}for(int i=0;i<MAXV;++i) if(degree[i]) return false;return true;}int main(){return 0;}

原创粉丝点击