BFS 基于队列实现,DFS 基于栈实现,是最基本的图算法,但是它们的扩展有很多实际用处。下面给出这两种图搜索的实现:
def bfs(graph, v):
queue = [v]
visited = set()
visited.add(v)
res = []
while queue != []:
temp = queue.pop(0)
res.append(temp)
for neighbor in graph[temp]:
if neighbor not in visited:
queue.append(neighbor)
visited.add(neighbor)
return res
def dfs(graph, v):
stack = [v]
visited = set(