示例#1
0
文件: graph.py 项目: KateAnn19/Graphs
    def bfs_v(self, start, dest):
        queue = Queue()
        visited = set()
        queue.enqueue({'current_vertex': start, 'path': [start]})
        queue.enqueue([start])
        while queue.size() > 0:
            curr_obj = queue.dequeque()
            curr_path = curr_obj['path']
            curr_vert = curr_obj['curr_vertex']

            if curr_vert not in visited:

                if curr_vert == dest:
                    return curr_path
                visited.add(curr_vert)

                for v in self.get_neighbors(curr_vert):
                    new_path = list(curr_path)
                    new_path.append(v)
                    queue.enqueue({'current_vert': v, 'path': new_path})