请想象在一个有向图中,如果有点a指向点b,可以理解为 事件a 是事件b 的前提,b必须在a之后输出。
于是这样就形成了一种排序关系。拓扑排序就是解决这类排序问题的算法。非常简单,快来学习吧!
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<vector>
#include<queue>
#define MAXN 1000
using namespace std;
struct Node{
int indegree; //入度
vector<int> next; //指向的点的编号
}node[MAXN];
queue<int>ans; //存放答案
int n, m; //点数和边数
void init(){
//初始化数据
for (int i = 0; i < n