Example #1
0
 def dfs(self, r: int):
     seen = np.zeros(self.n, np.bool_)
     l = []
     s = ArrayStack()
     s.push(r)
     while s.size() > 0:
         i = s.pop()
         l.append(i)
         seen[i] = True
         ngh = self.out_edges2(i)
         for j in range(0, ngh.size()):
             if seen[ngh.get(j)] == False:
                 s.push(ngh.get(j))
             else:
                 continue
     return l