grtsd.c

来自「经典c++程序的实现」· C语言 代码 · 共 17 行

C
17
字号
void topsort(Graph& G) { // Topological sort: recursive
  for (int i=0; i<G.n(); i++) // Initialize Mark array
    G.Mark[i] = UNVISITED;
  for (i=0; i<G.n(); i++)     // Process all vertices
    if (G.Mark[i] == UNVISITED)
      tophelp(G, i);          // Call recursive helper function
}

void tophelp(Graph& G, int v) { // Topsort helper function
  G.Mark[v] = VISITED;
  // No PreVisit operation
  for (Edge w = G.first(v); G.isEdge(w); w = G.next(w))
    if (G.Mark[G.v2(w)] == UNVISITED)
      tophelp(G, G.v2(w));
  printout(v);          // PostVisit for Vertex v
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?