拓撲排序

  • 拓撲排序
    以入度爲0的做起點
    vector<int> top_sort(){
    priority_queue<int ,vector<int> ,greater<int > >Q;
    for(int i=1;i<=n;i++){
        if(!indeg[i]){
            Q.push(i);
        }
    }
    std::vector<int> TOP;
    while(!Q.empty()){
        int T=Q.top();
        Q.pop();
        indeg[T]=-1;
        TOP.push_back(T);
        for(auto &e:graph[T]){
            indeg[e]--;
            if(indeg[e]==0)Q.push(e);
        }
    }return TOP;
    }
    }
  • 發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章