diff --git a/README.md b/README.md index 309807a..4ddc212 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,7 @@ Try to keep the interface and variable name consistent with the original book wh * [DepthFirstPaths](algs4/depth_first_paths.py) * [BreadthFirstPaths](algs4/breadth_first_paths.py) * [CC](algs4/cc.py) + * [Cycle](algs4/cycle.py) * 5 STRING diff --git a/algs4/depth_first_paths.py b/algs4/depth_first_paths.py index 7f6aa7a..14caf6a 100644 --- a/algs4/depth_first_paths.py +++ b/algs4/depth_first_paths.py @@ -34,20 +34,20 @@ class DepthFirstPaths: def __init__(self, G, s): - self._marked = [False for _ in range(G.V)] + self.marked = [False for _ in range(G.V)] self.edge_to = [0 for _ in range(G.V)] self.s = s self.dfs(G, s) def dfs(self, G, v): - self._marked[v] = True + self.marked[v] = True for w in G.adj[v]: - if not self._marked[w]: + if not self.marked[w]: self.edge_to[w] = v self.dfs(G, w) def has_path_to(self, v): - return self._marked[v] + return self.marked[v] def path_to(self, v): if not self.has_path_to(v): diff --git a/algs4/depth_first_search.py b/algs4/depth_first_search.py index 64ecd23..fc98eb3 100644 --- a/algs4/depth_first_search.py +++ b/algs4/depth_first_search.py @@ -21,20 +21,17 @@ class DepthFirstSearch: def __init__(self, G, s): - self._marked = [False for _ in range(G.V)] + self.marked = [False for _ in range(G.V)] self.count = 0 self.dfs(G, s) def dfs(self, G, v): - self._marked[v] = True + self.marked[v] = True self.count += 1 for w in G.adj[v]: - if not self._marked[w]: + if not self.marked[w]: self.dfs(G, w) - def marked(self, s): - return self._marked[s] - if __name__ == '__main__': import sys print(sys.argv) @@ -48,7 +45,7 @@ def marked(self, s): g.add_edge(v, w) search = DepthFirstSearch(g, s) for v in range(g.V): - if search.marked(v): + if search.marked[v]: print(str(v) + " ") if search.count == g.V: print("connected")