visited = set()
def dfs(node, visited):
visited.add(node)
#process current node here
...
for next_node in node.children():
if not next_node in visited:
dfs(next_node, visited)
def BFS(graph, start, end):
queue = []
queue.append([start])
visited.add(start)
while queue:
node = queue.pop()
visited.add(node)
process(node)
nodes = generate_related_nodes(node)
queue.push(nodes)
# other processing work
...
原文:https://www.cnblogs.com/huhu555/p/14696468.html