예제 #1
0
 private void DfsVisit(Digraph1 g, int u)
 {
     _ids[u] = _count;
     foreach (var v in g.Adj(u))
     {
         if (!_marked[v])
         {
             _marked[v] = true;
             DfsVisit(g, v);
         }
     }
 }
예제 #2
0
 private void DfsOrderVisit(Digraph1 g, int u, Stack <int> stack)
 {
     foreach (var v in g.Adj(u))
     {
         if (!_marked[v])
         {
             _marked[v] = true;
             DfsOrderVisit(g, v, stack);
         }
     }
     stack.Push(u);
 }