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 + -
显示快捷键?