拓扑排序
拓扑排序是对有向无环图的一种排序方式,它使得如果存在一条从vi到vj的路径,那么在排序中,vj将出现在vi的后面。这在课程的先行课的安排中很有用,拓扑排序将不会破坏课程的结构要求。
拓扑排序的方法
一个简单的求拓扑排序的算法分为一下几步
- 找出任意一个入度为0的顶点
- 输出该点,并将它和它的边一起从图中删除
- 重复步骤1,直到没有入度为0的点
算法实现
#include<iostream>
#include<list>
#include<vector>
using namespace std;
//节点类
class Vertex{
public:
int id;
int indegree;
Vertex(int i,