Exemplo n.º 1
0
                            self.result.append([self.start])
                            self.path += 1
                        else:
                            self.result[self.path] = [self.start]
                        self.visited = set()

    def construct_all_paths(self):
        self.__compute_iterative(self.start)
        self.__compute(self.start)
        self.result.pop()
        return self.result


if __name__ == '__main__':
    g = Graph()
    a = g.insert_vertex('A')
    b = g.insert_vertex('B')
    c = g.insert_vertex('C')
    d = g.insert_vertex('D')
    g.insert_edge(a, b, 'ab_bi')
    g.insert_edge(a, d, 'ad_bi')
    g.insert_edge(b, d, 'bd_bi')
    g.insert_edge(d, c, 'dc_bi')
    g.insert_edge(a, c, 'ca_bi')

    forest = DFS_complete(g)
    print(forest)
    bfs_forest = BFS_complete(g)
    print(bfs_forest)

    path = construct_path(a, d, forest)