拓扑序:
如果,图中从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;
}