75        std::map<ObjectId, bool> visited;
 
   76        std::map<ObjectId, bool> isActive;
 
   78        std::queue<ObjectId> activeId;
 
   83            if (
mEdges[v].size() == 0) {
 
  105                if (!visited[vid] && !isActive[vid]) {
 
  107                    isActive[vid] = 
true;
 
  112            for  (
auto vid : 
mEdges[v])
 
  120        while (!activeId.empty())
 
  152        int minLayler = maxLayer;
 
  155            minLayler = std::min(minLayler, 
mLayers[v]);
 
 
  224        std::vector<std::vector<WNode>> weightedNodes(
mLayerNum);
 
  226        auto compare_vertex = [=](
WNode n0, 
WNode n1) -> 
bool 
  228            return n0.
weight < n1.weight;
 
  234            WNode ln = { v, 1.0f };
 
  239            weightedNodes[
layer].push_back(ln);
 
  242        for (
size_t t = 0; t < 
mIterNum; t++)
 
  245            for (
size_t l = 1; l < weightedNodes.size(); l++)
 
  247                for (
size_t i = 0; i < weightedNodes[l].size(); i++)
 
  250                    ObjectId v = weightedNodes[l][i].id;
 
  259                std::sort(weightedNodes[l].begin(), weightedNodes[l].end(), compare_vertex);
 
  261                for (
size_t i = 0; i < weightedNodes[l].size(); i++)
 
  263                    ObjectId v = weightedNodes[l][i].id;
 
  272                for (
size_t i = 0; i < weightedNodes[l].size(); i++)
 
  275                    ObjectId v = weightedNodes[l][i].id;
 
  281                    weightedNodes[l][i] = { v, sum / 
mEdges[v].size() };
 
  284                std::sort(weightedNodes[l].begin(), weightedNodes[l].end(), compare_vertex);
 
  286                for (
size_t i = 0; i < weightedNodes[l].size(); i++)
 
  288                    ObjectId v = weightedNodes[l][i].id;
 
  298        for (
size_t l = 0; l < weightedNodes.size(); l++)
 
  300            for(
auto n : weightedNodes[l])
 
  306        for (
size_t l = 0; l < weightedNodes.size(); l++)
 
  308            weightedNodes[l].clear();
 
  311        weightedNodes.clear();