# AOV 網和拓撲排序
AOV(Activity On Vertex)網指用頂點表示活動,用邊集表示活動間優先關系的有向無環圖。
拓撲排序是指將有向無環圖 G 的所有頂點排成的一個線性序列,且對圖 G 中的任意兩個頂點 u、v,若存在邊 u->v ,則在序列中 u 一定在 v 前面。
```c++
vector<int> Adj[maxv];
int n,m,inDegree[maxv];
bool topologicalSort(){
int num=0;
queue<int> q;
for(int i=0;i<n;i++){
if(inDegree[i]==0) q.push(i);
}
while(!q.empty()){
int u=q.front();
// printf("%d",u);
q.pop();
for(int i=0;i<Adj[u].size();i++){
int v=Adj[u][i];
inDegree[v]--;
if(inDegree[v]==0) q.push(v);
}
Adj[u].clear();
num++; // 每 pop 一個拓撲序列加1
}
if(num==n) return true;
else return false;
}
```