# Depth-first search for finding connectedness in Digraph.
#
# Jesper Larsson, Malmö University, 2018–2020

class DFS:
    def __init__(self, G, s):
        self.__marked = [False] * G.V
        def dfs(G, v):
            self.__marked[v] = True
            for w in G.adj(v):
                if (not self.__marked[w]):
                    dfs(G, w)

        dfs(G, s)

    def marked(self, v):
        return self.__marked[v] 
