拓撲序:
如果,圖中從v到w有一條有向路徑,則v一定排在w之前,滿足此條件的頂點序列稱之爲拓撲序,獲得一個拓撲序的過程叫做拓撲排序;AVO如果有合理的拓撲序,則必定是有向無環圖;
// 拓撲排序
topSort: function(){
var that = this;
var a = 1;
var visiteds = [];
for (var i = 0; i < this.vertices; i++){
visiteds.push(false);
}
var stack = [];
// 遍歷所有節點,並一次調用sortHelper函數
for (var i = 0; i < this.vertices; i ++){
if (!visiteds[i]){
sortHelper(i);
}
}
function sortHelper(v){
// 類似深度搜索
if (!visiteds[v]){
stack.push(v);
visiteds[v] = true;
that.adj[v].forEach(function(w){
sortHelper(w);
})
}
}
return stack;
}