def main(s): file_name = '../resources/tinyG.txt' with open(file_name) as f: ints = list() for line in f.read().split('\n'): ints.append(line) vertices, edges = int(ints[0]), int(ints[1]) graph = Graph(vertices) print(graph) inp = ints[2:] # skip first lines vertices and edges for i in range(edges): v, w = inp[i].split(' ') graph.add_edge(int(v), int(w)) print(graph) search = DepthFirstSearch(graph, int(s)) for v in range(graph.get_V()): if search.marked(v): print(f'{v} ') print() if search.count() != graph.get_V(): print('Not connected.') else: print('Connected')
def main(): g = Graph(6) print(g) g.add_edge(0, 5) g.add_edge(2, 4) g.add_edge(2, 3) g.add_edge(1, 2) g.add_edge(0, 1) g.add_edge(3, 4) g.add_edge(3, 5) g.add_edge(0, 2) print(g) s = 0 dfs = DepthFirstPaths(g, s) print(dfs) for v in range(g.get_V()): if dfs.has_path_to(v): print(f'{s} to {v}') for x in reversed(dfs.path_to(v)): if x == s: print(x, end="") else: print(f' - {x}', end="") print() else: print(f'{s} to {v}: not connected\n')
def main(): g = Graph(4) g.add_edge(0, 1) g.add_edge(0, 2) g.add_edge(1, 2) g.add_edge(2, 3) cc = CC(g) print(cc) m = cc.get_count() print(f'{m} components') components = deque([deque() for _ in range(m)]) for v in range(g.get_V()): components[cc.id(v)].append(v) for i in range(m): for v in components[i]: print(f'{v} ') print()
def main(): s = 0 g = Graph(4) g.add_edge(0, 1) g.add_edge(0, 2) g.add_edge(1, 2) g.add_edge(2, 3) bfs = BreadthFirstPaths(g, s) print(bfs) for v in range(g.get_V()): if bfs.has_path_to(v): print(f'{s} to {v} ({bfs.distance_to(v)})') for x in reversed(bfs.path_to(v)): if x == s: print(x, end="") else: print(f' - {x}', end="") print() else: print(f'{s} to {v} (-): not connected.\n')